(К сожалению, еще один this
вопрос в JavaScript.)Что означает «это» в javascript ниже?
У меня есть код, приведенный ниже, и мне интересно, что «это» представляет в вызове в end-- окне или птица?
var Bird = (function() {
Bird.name = 'Bird';
function Bird(name) {
this.name = name;
}
Bird.prototype.move = function (feet) {
return alert(this.name + (" flew" + feet + "ft."));
};
return Bird;
}).call(this);
Я проверил это в противном случае пустым сценарием, добавив параметр x в функцию и предупреждение (x) внутри вызова - это ** не определено **. – delicateLatticeworkFever
@ goldilocks Это не работает. Когда вы используете 'call', первый аргумент - это контекст/область, в которой вы выполняете, он не передается в качестве параметра функции. Чтобы проверить, что вы предлагаете правильно, попробуйте '(function() {console.log (this);}). Call (this);'. Если вы хотите увидеть аргумент, попробуйте '(function (arg) {console.log (this, arg);}). Call (this, this);'. Оба этих теста показывают, что это «окно». – Matt
jsПримечание моего примера: http://jsfiddle.net/Umseu/1 – Matt