我正在尝试找到一种方法来处理属性重载,就像在PHP中完成的那样:http://www.php.net/manual/en/language.oop5.overloading.php#language.oop5.overloading.members
即
var myobj = function () {}
myobj.prototype.getProperty = function (propertyName) { console.log('Property Requested: ', propertyName); }
var otherObj = function () {};
myobj.hello; // Property Request: hello
otherObj.hello; // undefined
这可能吗?
答案 0 :(得分:0)
这种事情只能在所有浏览器(例如IE)都不支持的ECMAscript 5中完成。使用Object.defineProperty
,您可以使用访问器函数创建属性 - 因此您可以在数组中实现类似length
的属性,具体取决于对象状态。
Doug Crockford对这些功能进行了很好的介绍,并提供了更详细描述的链接here。