什么是对象内部的下一个(){}
What is the next(){} inside object?
在查看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的简写形式。
在 pre es6 中,它将被编写为next: function() {}
对于您自己的逻辑,您可以使用 Babel 等编译器或只是将其编写为
var obj = {
foo: 1,
bar: function(){
// return data here
}
}
本质上,对象可以包含其他对象,这些对象也可以是函数。当你把头缠绕在它周围时,它非常强大。
编辑:格式化答案以提高可读性
回答您的简化问题:首先,您将bar
定义为返回1
的函数。然后在obj
中将其定义为空白函数。当您在对象内部传递函数时,它会获取key
作为该函数的函数名称和值。
下面的代码
var obj = {foo: 1, bar(){}}
等于
var bar = function() {}
var obj = {foo: 1, bar: bar}
但是,如果您这样做
var obj = {foo: 1,bar(){return 1}}
console.log(obj.bar()) //output will be 1
相关文章:
- AngularJS&JSON-从Previous&下一个对象
- 使用下划线将键和值的两个数组合并到一个对象中
- 将一个对象转换为一个单键对象数组(带下划线?)
- 在对象中查找下一个键id
- 获取"下一个“;对象中的数值
- .effect('幻灯片'..不显示下一个对象
- 在我的情况下,如何将对象添加到另一个对象中
- Javascript:如何在不复制但链接的情况下将另一个对象 B 的方法混合到我的对象 A
- 循环遍历 Angular HTTP 请求中的对象,等到响应后再运行下一个循环
- 按属性值获取数组中的下一个对象
- 下划线.js,从一个对象中获取两个项目并添加到顶部
- 余烬链接到模型中的下一个对象
- 使用 ajax 请求获取上一个和下一个对象
- 绑定另一个对象的下拉列表
- 检查一个对象中的项目是否存在于另一个对象中(使用下划线)
- 返回匹配对象 id 的下一个和上一个对象
- 使用Jquery Slider获取下一个锚点对象时出现问题
- 获取日期对象池的下一个即将到来的日期
- MongoDB=>findOne还是find查询下一个对象?(Meteor/React)
- 显示数组中的下一个对象值