gpt4 book ai didi

javascript - Javascript 是否具有类似于 Ruby 的 method_missing 功能?

转载 作者:IT王子 更新时间:2023-10-29 03:03:30 25 4
gpt4 key购买 nike

在 Ruby 中,我认为您可以调用一个尚未定义的方法,然后捕获调用的方法的名称并在运行时处理该方法。

Javascript 可以做同样的事情吗?

最佳答案

method_missing 不适合 JavaScript,原因与它在 Python 中不存在的原因相同:在这两种语言中,方法只是碰巧是函数的属性;并且对象通常具有不可调用的公共(public)属性。与 Ruby 相比,对象的公共(public)接口(interface)是 100% 的方法。

JavaScript 中需要的是一个钩子(Hook)来捕获对缺失属性的访问,无论它们是否是方法。 Python 有它:参见 __getattr__特殊方法。

__noSuchMethod__ Mozilla 的提案在充满它们的语言中引入了另一个不一致。

JavaScript 的前进方向是 Proxy mechanism (也在 ECMAscript Harmony 中),它更接近 customizing attribute access 的 Python 协议(protocol)而不是 Ruby 的 method_missing

关于javascript - Javascript 是否具有类似于 Ruby 的 method_missing 功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9779624/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com