我对以下代码感到困惑;评论意义上的“背景”是什么意思? 它是否用于范围?
// If the value of the named `property` is a function then invoke it with the
// `object` as context; otherwise, return it.
_.result = function(object, property) {
if (object == null) return void 0;
var value = object[property];
return _.isFunction(value) ? object[property]() : value;
};
答案 0 :(得分:2)
" context"函数调用是给this
的值。在您发布的代码中,函数调用如下:
object[property]()
属性值是从object
获取的,因此函数调用的规则表明object
应该是this
的值。如果您发布的代码看起来像这样:
return _.isFunction(value) ? value() : value;
然后函数调用将以不同的方式进行:this
的值将是全局对象(浏览器中为window
),如果在"中运行,则为undefined
。严格"模式。