Error: function is not defined when calling a function returned by another function

Error: function is not defined when calling a function returned by another function

我正在尝试编写一个 return 另一个函数的函数。我的目标是编写一个函数,它接受一个对象和 return 另一个函数 "search"。当我用一个键调用搜索函数时,我想 return 来自第一个函数中给定的对象的那个键的值。

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) ,我会得到 [Function: search] 作为结果。当我调用 search (age) 时,我收到未定义搜索的错误。如何在仍然引用我要搜索的对象的同时使用键调用 'inside' 函数?

考虑试试这个:

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