一尘不染

我可以在JavaScript中声明对象时引用其他属性吗?

javascript

我正在尝试做这样的事情:

var obj = {
    a: 5,
    b: this.a + 1
}

(而不是5,我不想执行两次返回一个数字的函数)

我可以重写它,以便obj.b稍后从分配obj.a,但是我可以在声明期间立即执行吗?


阅读 243

收藏
2020-05-01

共1个答案

一尘不染

thisJavaScript中的编号无法像您想象的那样工作。this在这种情况下,指的是全局对象。

只有3种情况下this会设置该值:

功能案例

foo();

这里this将引用 全局 对象。

方法案例

test.foo();

在此示例this中将参考test

构造案例

new foo();

new关键字前面的函数调用充当构造函数。函数内部this将引用一个新创建的Object

在其他任何地方,都this指向全局对象。

2020-05-01