我来自 Ruby 背景,正在尝试测试与检索到 JSON api 端点的对象交互的 Javascript 库。
我将如何在 Javascript 中重新创建以下 Ruby?
class ArbitraryMock
def initialize(property_hash)
@property_hash = property_hash
end
def method_missing(*args)
@property_hash[args.first] || ''
end
end
编辑:method_missing 是一种动态方法,只要方法不存在就会调用。此方法的默认版本会引发 NoMethodError(我相信 Javascript 会返回 undefined)。通过以上述方式覆盖该方法,它允许您执行以下操作:
some_object = ArbitraryMock.new(foo: 'bar')
some_object.foo
=> 'bar'
some_object.bang
=> ''