Я на самом деле изучаю Javascript Крокфорда : хорошие части . Я новичок в JavaScript, поэтому мне трудно понять, как работает этот код:
Function.prototype.method = function (name, func) {
this.prototype[name] = func;
return this;
};
Вот что я думаю:
Будучи методом (функцией внутри объекта), this
указывает на объект Function
, но зачем нужно возвращать объект, если у меня есть доступ к нему изнутри метода? Если я прав, этот
является ссылкой, а не локальной копией, поэтому:
Function.prototype.method = function (name, func) {
this.prototype[name] = func;
};
Также должно работать.
С другой стороны, в JavaScript функция без оператора return возвращает ] undefined
и назначьте его Function.prototype.method
.
Какой смысл возвращать этот
?
Function.prototype.method = function (name, func) {
this.prototype[name] = func;
return this;
};
var add = function(a, b) {
return a+b;
};
Function.method('add', add);
var f = function() {};
print(f.add(1,2));
Number.method('integer', function () {
return Math[this < 0 ? 'ceil' : 'floor'](this);
});
print((-10/3).integer());
Вывод:
-3
С другой стороны, в JavaScript функция без оператора return возвращает
undefined
и присваивает егоFunction.prototype.method
.Вопрос
Какой смысл возвращать
этот
?
Рабочий пример №1
Function.prototype.method = function (name, func) { this.prototype[name] = func; return this; }; var add = function(a, b) { return a+b; }; Function.method('add', add); var f = function() {}; print(f.add(1,2)); Number.method('integer', function () { return Math[this < 0 ? 'ceil' : 'floor'](this); }); print((-10/3).integer());
Вывод:
-3
С другой стороны, в JavaScript функция без оператора return возвращает
undefined
и присваивает егоFunction.prototype.method
.Вопрос
Какой смысл возвращать
этот
?
Рабочий пример №1
Function.prototype.method = function (name, func) { this.prototype[name] = func; return this; }; var add = function(a, b) { return a+b; }; Function.method('add', add); var f = function() {}; print(f.add(1,2)); Number.method('integer', function () { return Math[this < 0 ? 'ceil' : 'floor'](this); }); print((-10/3).integer());
Вывод:
-3 3
Рабочий пример # 2
Function.prototype.method = function (name, func) { this.prototype[name] = func; }; var add = function(a, b) { return a+b; }; Function.method('add', add); var f = function() {}; print(f.add(1,2)); Number.method('integer', function () { return Math[this < 0 ? 'ceil' : 'floor'](this); }); print((-10/3).integer());
Вывод:
-3 3