下划线:源代码注释中“上下文”的含义是什么

时间:2015-08-18 12:58:48

标签: javascript underscore.js

我对以下代码感到困惑;评论意义上的“背景”是什么意思? 它是否用于范围?

    // 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;
    };

example in jsbin

1 个答案:

答案 0 :(得分:2)

" context"函数调用是给this的值。在您发布的代码中,函数调用如下:

object[property]()

属性值是从object获取的,因此函数调用的规则表明object应该是this的值。如果您发布的代码看起来像这样:

return _.isFunction(value) ? value() : value;

然后函数调用将以不同的方式进行:this的值将是全局对象(浏览器中为window),如果在"中运行,则为undefined。严格"模式。