我想功能类似于获得C#.net的属性。例如
var method : function() {
return "something which always change";
},
var objectName = {
property : method()
};
因此,每当我调用objectName.property时,都应该返回实际的新值。不是声明时设置的值。可能吗。
在.net属性中,保存函数地址,并且每次都会调用该函数。我想要这样的功能。
谢谢,
最佳答案
使用Object.defineProperty覆盖吸气剂。
var counter = 0;
var method = function() {
return counter++;
};
function ObjectName() {}
Object.defineProperty(ObjectName.prototype, 'property', {
get: method
});
var objectName = new ObjectName();
console.log(objectName.property); // 0
console.log(objectName.property); // 1
JSBin演示https://jsbin.com/racegeteni/edit?js,console