【发布时间】:2014-03-12 04:45:11
【问题描述】:
看了几本关于 JavaScript 的书,它是一种非常强大的语言,用于使用 OOP 构建 Web 应用程序,但是现在有一个问题不知道是否可以解决:
var myObj = {};
myObj.properties = {};
myObj.properties.myProperty = 'foo';
让我解释一下,现在我有 myObj .. 在里面设置了 properties 对象...现在,如果我问的话
对于myObj.properties.myProperty,我会得到foo。但是,如果我要求 myObj.properties.notSettedValue 怎么办? (即undefined)
我在 MDN 上读到了 Object.defineProperty,它可以在属性上设置 setter 和 getter。
我尝试在myObj.properties 上设置"get" 值
Object.defineProperty(myObj, 'properties', {
get : function(){
console.log("called custom get property.", this, arguments);
}
});
...但无事可做,为myObj.properties 声明的get 函数只为自己工作。仅当我请求myObj.properties 时才调用自定义函数。不适合它的孩子。
有一个解决方案可以将请求的myObj.properties.notSettedValue 传递给myObj.properties 的get 函数吗?
(不使用像myObj.properties.getItem('notSettedValue')这样的函数或方法)
【问题讨论】:
标签: javascript oop object properties