По сути, этот синтаксис позволяет вызывать _.Em()
в контексте объекта window
вместо _
.
Предположим, у вас есть этот код:
Foo = function() {
this.foo = "foo";
};
Foo.prototype.Em = function() {
alert(this.foo);
};
var _ = new Foo();
Выдача _.Em()
приведет к вызову Em()
в контексте _
. Внутри функции ключевое слово this
будет ссылаться на _
, поэтому будет напечатано foo
.
Выпуск (0, _.Em)()
отделяет вызов метода от объекта и выполняет вызов в глобальном контексте. Внутри функции ключевое слово this
будет ссылаться на window
, поэтому будет напечатано undefined
, поскольку window
не имеет свойства foo
.
Вы можете проверить разницу между двумя синтаксисами в этой скрипке .