2015-08-18 2 views
1

Я смущен о коде ниже; В чем смысл «контекста» для обозначения комментариев? Используется ли он для области?Подчеркивание: что означает «контекст» в комментарии к исходному коду

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

ответ

2

"контекста" вызова функции является значение дано this. В коде вы в курсе, функция вызывается так:

object[property]() 

Значение свойства извлекается из object, и поэтому правила для вызова функции говорят, что object должно быть значение для this. Если код размещен выглядел как это вместо:

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

, то вызов функции были бы сделаны по-разному: значение this будет глобальный объект (window в браузере), или undefined при работе в " строгий "режим.

+0

3q, и я думал, что я действительно не понимаю 'var value = object [property];' do what – user3114590

Смежные вопросы