在Python中,您可以定义一个具有
示例代码可能如下:
__getattr__(self,key)
方法的对象,以以程序化方式处理所有未知属性,但在JavaScript中,您只能为预定义属性定义getter和setter。是否存在一种通用方式,也可以在JavaScript中完成前面的事情?示例代码可能如下:
function X() {};
X.prototype={
__getattr__:function(attrname) {
return "Value for attribute '"+attrname+"'";
}
}
x=new X()
alert(x.lskdjoau); // produces message: "Value of attribute 'lskdjoau'"
关键点是根据属性名称以编程方式获取属性值。预设属性不起作用,因为在初始化过程中没有信息可供请求的属性。
__getattr__
对应的是myObj[myKey]
,而__hasattr__
对应的是myObj.hasOwnProperty(myKey)
。由于问题已关闭,我将此作为评论添加。 - Théo Rubenach