<分区>
我正在尝试做这样的事情:
var obj = {
a: 5,
b: this.a + 1
}
(而不是 5 有一个函数,我不想执行两次返回一个数字)
我可以重写它以稍后从 obj.a
分配 obj.b
,但我可以在声明期间立即这样做吗?
标签 javascript
<分区>
我正在尝试做这样的事情:
var obj = {
a: 5,
b: this.a + 1
}
(而不是 5 有一个函数,我不想执行两次返回一个数字)
我可以重写它以稍后从 obj.a
分配 obj.b
,但我可以在声明期间立即这样做吗?
最佳答案
没有。 JavaScript 中的 this
并不像您想象的那样工作。 this
在这种情况下指的是全局对象。
this
值只有 3 种情况被设置:
函数案例
foo();
这里 this
将引用 global 对象。
方法案例
test.foo();
在此示例中,this
将引用 test
。
构造器案例
new foo();
以 new
关键字开头的函数调用充当构造函数。在函数内 this
将引用一个新的
创建了对象
。
在其他地方,this
指的是全局对象。
关于javascript - 我可以在 JavaScript 中的对象声明期间引用其他属性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4618541/
相关文章:
javascript - 如何在移动设备上触发 Mousedown/Mouseup?
javascript - 从 Kendogrid 的选定项目中提取日期
javascript - 使用 md-virtual-repeat 动态加载字体
php - 使用发布数据打开新窗口(PHP、Javascript)
javascript - 如何在 javascript 中访问 JSON.parsed 对象
javascript - 自动刷新div内容,由jquery加载包含ajax调用
javascript - 如何匹配可能有或没有后缀的 JS 正则表达式