我試圖編寫一個返回另一個函數的函數。我的目標是編寫一個函數,它接受一個對象並返回另一個函數「search」。當我用鍵調用搜索函數時,我想從第一個函數中給出的對象返回該鍵的值。錯誤:調用另一個函數返回的函數時未定義函數
propertyOf = function(object) {
return search = function (key) {
for (key in object)
if (key === object.property){
return object[property]
}
}
}
說我有一個對象:
var me = {name: "Bob", age: 87}
如果我打電話propertyOf (me)
,我得到[功能:搜索]作爲結果。當我打電話給search (age)
時,我得到了沒有定義搜索的錯誤。如何在使用某個鍵的情況下調用'inside'函數,同時仍然引用我想要搜索的對象?
http://jsbin.com/tubixusevi/1/edit?js,console - 我無法重現您所描述的問題。嘗試提供一個真正的[mcve]。 – Quentin
除此之外:如果您要忽略返回值並僅使用函數創建的全局函數,那麼'propertyOf'中沒有任何返回值。 – Quentin
*「key = object.property」*應該是** key == object.property ** – derloopkat