在查看 for-of 循环时,我看到以下代码:
var iterable = {
[Symbol.iterator]() { /* 1. I don't understand, will look later*/
return {
i: 0,
next() { /* 2. New to me how next(){} is used inside object? */
if (this.i < 3) {
return { value: this.i++, done: false };
}
return { value: undefined, done: true };
}
};
}
};
for (var value of iterable) {
console.log(value);
}
// 0
// 1
// 2
为了简化我的问题,我试图用我自己的逻辑来理解:
function bar(){
return 1;
}
var obj = {foo: 1, bar(){}}
console.log(obj); /* I get nothing error, so this is good */
console.log(obj.bar());
/* Just trying to know if this works, but I get undefined*/
那么对象字面量中的 func(){} 有什么用呢?我只看到了property:value
对象字面量内的声明。
最佳答案
对象内的
next() {}
是 es6 简写形式。
在 es6 之前,它会被写成 next: function() {}
对于你自己的逻辑,你可以使用像 Babel 这样的编译器,或者只是写成
var obj = {
foo: 1,
bar: function(){
// return data here
}
}
本质上,对象可以包含其他对象,并且这些对象也可以是函数。当你把头围在它周围时,它非常强大。
编辑:格式化答案以提高易读性
关于javascript - 对象内部的 next(){} 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38369856/