错误:调用另一个函数返回的函数时未定义函数

时间:2017-07-03 19:09:08

标签: javascript higher-order-functions

我正在尝试编写一个返回另一个函数的函数。我的目标是编写一个函数,它接受一个对象并返回另一个函数" 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)时,我收到了未定义搜索的错误。我怎么称呼内部'使用键功能,同时仍然引用我想要搜索的对象?

1 个答案:

答案 0 :(得分:1)

考虑尝试这个:

let bob = {
  name: 'Bob',
  age: 87
},
searchBob;

propertyOf = object => {
  return propName => {
    for (let key in object) {
  if(key === propName) return object[key]
    }
  }
}

searchBob = propertyOf(bob);

// Call it like this:

console.log(searchBob('age')); // 87