※ 引述《freeman371 (自由人371)》之铭言:
: 标题: [问题] 为什么无法在同一个物件里读取另一个属性的值
: 时间: Thu Jul 20 08:01:54 2017
:
: 程式码如下:
:
: var f = {
: d: 123,
: e: this.d
: };
:
: 要如何在属性e底下读取同一个物件的属性d的值呢?
:
: 亦即让e的值也变得跟d一样是123
:
: 我用this.d和f.d都无效
为什么会没办法读取同一物件下的属性值呢?
原因很简单,因为物件f在你要赋予e值的时候尚未被定义
也就是在给属性e值的时候 外面这个f“还在定义中”,当然这时候这个物件f就是undefined啦~
如果要在属性e底下读取同一个物件的属性d的值,可以用物件方法(Method)来实现
所以改写之后会变成:
var f = {
d: 123,
e: function(){
return this.d;
}
};
到时候只要写成f.e()就能回传f.d的值了,也就是数字123
:
: