如果吃一勺undefined会怎样?

相关问题: 如果吃一勺null会怎样?
关注者
30
被浏览
10,569
登录后你可以
不限量看优质回答私信答主深度交流精彩内容一键收藏

要考虑吃一勺undefined,首先考虑如何吃一勺其他东西。

就是,首先要有个“吃”, 这个“吃”会接受“一勺”食物,行为是消灭掉勺子里的食物,然后把勺子吐出来:

type Spoonful<T> = {food: T};
const eat = (spoon: Spoonful<any>) => {
    delete spoon.food;
    return spoon;
}

然后,需要有一个勺子:

const spoonOf = (food: any) => ({food})

最后,我们来实验一下,吃下一勺undefiend会怎样:

console.log(eat(spoonOf(undefined)));

答案是:我们获得了一个空勺子。




另外,显然我们知道,

eat(spoonOf(undefined))

eat(spoonOf())

的行为应该是一致的(当然的确存在不一致的可能,因为args.length或者arguments.length不同,这里也是Lua比JavaScript做得好的地方之一),所以,吃一勺undefined,就相当于把空勺子放进嘴里,然后吐出来。


利益相关:我被吃了。