答案 0 :(得分:0)
在你的第二段代码中,object
来自哪里?!这就是整个问题。
第一个代码使用如下:
// same as getter = function (object) { return object['foo']; }
var getter = get('foo');
var value = getter({ foo: 'bar' });
get
接受属性名称并返回一个接受对象并返回值的函数。你的第二个函数在任何时候都不接受任何对象,那么它应该返回什么?
答案 1 :(得分:0)
看起来你有一个尝试返回对象属性的方法。
上述两种方法都有效,但期望不同范围的变量,并且执行方式不同。
第一个方法返回第二个方法,在其中传递一个对象以从中获取属性。所以
var object = {
foo: 'bar'
}
get('foo'); //returns 'bar';
而第二个像这样工作
object
第二个例外{{1}}是一个全局变量,或者至少在更高的范围内,因为它没有在它自己的函数中定义。
第一个方法是传递一个对象来搜索属性。第一个,虽然有点复杂,但比预期和依赖全局变量的第二个更好,更容易测试。