Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вызов метода объекта. (https://javascript.ru/forum/misc/39591-vyzov-metoda-obekta.html)

Armen 04.07.2013 21:38

Вызов метода объекта.
 
Здравствуйте.
Подскажите пожалуйста.
Есть код:
function Foo() {
     return 1 + 1;
}

var foo = new Foo();

Вопрос: нужно сделать так, чтоб при вызове
foo

вызывался не сам объект, а именно его метод, то есть результат был 2.

рони 04.07.2013 22:23

:-? new убрать

Armen 04.07.2013 22:28

нет, можно менять только код конструктора.

BallsShaped 04.07.2013 22:37

Конструктор возвращает объекты, это же так объектно-ориентированно (если понимаешь о чем я).
alert(new Two + new Two);

function Two() { return new Number(1 + 1); }

pikko 05.07.2013 12:49

там нет ни конструкторов, ни объектов с методами которые могут вернуть 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() );

danik.js 05.07.2013 15:54

pikko, смотри предыдущий ответ. Я думаю автор это и просил. А разгадка проста - конструктор может вернуть только объект. Примитивы игнорируются.


Часовой пояс GMT +3, время: 15:56.