如果吃一勺undefined会怎样?
关注者
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
,就相当于把空勺子放进嘴里,然后吐出来。
利益相关:我被吃了。