Re: [问题] 为什么无法在同一个物件里读取另一个属性的值

楼主: banana2014 (香蕉共和国)   2017-07-21 04:48:48
※ 引述《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
:
:
作者: nottt (无)   2017-07-21 07:06:00
解说好详细,推一下
作者: akccakcctw (947)   2017-07-21 12:40:00
推推,我忘记按f5了,难怪可以XDDD
作者: ilovekebi   2017-07-21 13:56:00
推解说详细~
作者: bug9 (景依旧人不在)   2017-07-23 10:31:00
推!!

Links booklink

Contact Us: admin [ a t ] ucptt.com