Вызов метода объекта.
Здравствуйте.
Подскажите пожалуйста. Есть код:
function Foo() {
return 1 + 1;
}
var foo = new Foo();
Вопрос: нужно сделать так, чтоб при вызове foo вызывался не сам объект, а именно его метод, то есть результат был 2. |
:-? new убрать
|
нет, можно менять только код конструктора.
|
Конструктор возвращает объекты, это же так объектно-ориентированно (если понимаешь о чем я).
alert(new Two + new Two);
function Two() { return new Number(1 + 1); }
|
там нет ни конструкторов, ни объектов с методами которые могут вернуть 2, Foo это просто функция. если надо 2, то просто без new:
function Foo() {
return 1 + 1;
}
var foo = Foo;
alert( foo() );
если нужен конструктор c методом, то как-то так, например:
function Foo() {
this.two = function () { return 1 + 1 };
}
var foo =new Foo();
alert( foo.two() );
|
pikko, смотри предыдущий ответ. Я думаю автор это и просил. А разгадка проста - конструктор может вернуть только объект. Примитивы игнорируются.
|
| Часовой пояс GMT +3, время: 11:48. |