长话短说:我的情况是我喜欢PHP式的getter,但是在JavaScript中.
我的JavaScript只在Firefox中运行,因此我可以使用Mozilla特定的JS.
我可以找到制作JS getter的唯一方法是需要指定它的名称,但是我想为所有可能的名称定义一个getter .我不确定这是否可行,但我非常想知道.
有没有办法__getattr__在Javascript中模拟Python的方法?
我想拦截Javascript对象属性的'获取'和'集'.
在Python中,我可以编写以下内容:
class A:
def __getattr__(self, key):
return key
a = A()
print( a.b ) # Output: b
Run Code Online (Sandbox Code Playgroud)
Javascript怎么样?
可能重复:
所有属性的JavaScript getter
JavaScript是否提供了访问未定义对象属性的方法?在PHP中,解决方案是__get()在类中声明和实现方法.
使用try { .. } catch { .. }的解决方案对我来说还不够,因为我已经拥有非常大量的代码,而这些代码实际上需要保持原样.
我正在寻找一种方法来处理JavaScript中未定义的方法和属性的调用.
这些类似于PHP魔术方法__call,__ callStatic,__ get.
使用此代码的示例可能是:
var myObject = {};
myObject.__call = function (called, args) {
alert(called);
alert(args);
return(true);
}
myObject.meow("kitty", "miau");
Run Code Online (Sandbox Code Playgroud)
这将导致第一个警告对话框显示"喵",第二个显示"kitty,miau".