javascript中作为对象属性值的自执行函数

Self executing function as object property value in javascript

本文关键字:执行 函数 属性 对象 javascript      更新时间:2024-04-04

是否可以有一个作为对象属性值的自执行函数将值分配给对象中的其他属性?

例如,我想做的是:

var b={
  c:'hi',
  d:null,
  e:new function(){this.d=5}
};

但新函数中的"this"似乎指的是b.e。是否可以从函数内部访问b.e父级(即b)?

这就是你的做法。

通常称为模块模式(更多信息)

var b = function () {
   var c = 'hi';
   var d = null;
   return {
     c : c,
     d : d,
     e : function () {
       // this function can access the var d in the closure.
       d = 5;
     }
   }
}();

您可以访问function中的值,只需要去掉new,即

e: function () {
    this.d = 5;
}