javascript引用自身属性

来源:互联网 发布:澳洲国立大学博士知乎 编辑:程序博客网 时间:2024/05/21 20:25

javascript引用自身属性

说明:目的是需要定义对象,且内部属性的值依赖自身属性的值

var foo = {    a: 5,    b: 6,    c: this.a + this.b  // Doesn't work c:NaN}

解决方法

方法1、

var foo = {  a: 5,  b: 6,  get c () {    return this.a + this.b;  }}

但是这种方法有缺陷c属性的值会随着a,b属性值的改变而改变,即c的值是引用a,b的值计算的结果.

方法2、

var foo = {   a: 5,   b: 6,   init: function() {       this.c = this.a + this.b;       return this;   }}.init();

这种方法也有缺陷,重新调用init方法,c的值还是会改变的。

方法3、

let o = (function () {    let obj = {        a: 5,        b: 6,        init: function() {            this.c = this.a + this.b;            return this;        }    }.init()    delete obj.init//删除初始化属性    return obj})()

这种利用闭包的方式就完美的解决了问题。

原创粉丝点击