我來自Ruby背景,並且試圖測試與對象交互的Javascript庫檢索了JSON api的終點。任意嘲弄對象屬性
我該如何在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
=> ''
method_missing做什麼?在這種情況下,它是用來返回屬性的值還是空字符串?如果這是正確的,你可以用getter/setter做些事情。 – Andy
請參閱我的問題的編輯版本。 – HaaR
我已經更新了我的答案。我希望這有些用處。 – Andy