我想用'this'代替IIFE中对象的名称。
var ops = {
start: (function (){
socket.on('set', function(data) {
ops.getData();
});
}()),
getData: function (){
...
}
};
怎么做?
答案 0 :(得分:0)
你做不到。更不用说您的函数不会返回任何要分配给ops.start
的内容。
var ops = {
start: function (){
var self = this;
socket.on('set', function(data) {
self.getData();
});
}
};
ops.start();
答案 1 :(得分:0)
如果需要,可以在函数上下文中使用getter和closure。 Getter自动调用函数:
var ops = {
get start() {
return socket.on('set', function(data) {
ops.getData();
});
},
getData: function (){
}
};
现在你可以参考ops.start
答案 2 :(得分:-1)
您可以创建一个新对象并使用它的原型来访问“this”:
var o = Object.create(Object.prototype, {
data: {
value: 12
},
getobject: {
get: function() {
return this.data;
}
}
});
o.getobject;