Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.07.2013, 21:38
Аватар для Armen
Кандидат Javascript-наук
Отправить личное сообщение для Armen Посмотреть профиль Найти все сообщения от Armen
 
Регистрация: 28.06.2009
Сообщений: 120

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

var foo = new Foo();

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

вызывался не сам объект, а именно его метод, то есть результат был 2.
Ответить с цитированием
  #2 (permalink)  
Старый 04.07.2013, 22:23
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,052

new убрать
Ответить с цитированием
  #3 (permalink)  
Старый 04.07.2013, 22:28
Аватар для Armen
Кандидат Javascript-наук
Отправить личное сообщение для Armen Посмотреть профиль Найти все сообщения от Armen
 
Регистрация: 28.06.2009
Сообщений: 120

нет, можно менять только код конструктора.
Ответить с цитированием
  #4 (permalink)  
Старый 04.07.2013, 22:37
Профессор
Отправить личное сообщение для BallsShaped Посмотреть профиль Найти все сообщения от BallsShaped
 
Регистрация: 14.09.2012
Сообщений: 162

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

function Two() { return new Number(1 + 1); }
Ответить с цитированием
  #5 (permalink)  
Старый 05.07.2013, 12:49
Аватар для pikko
Аспирант
Отправить личное сообщение для pikko Посмотреть профиль Найти все сообщения от pikko
 
Регистрация: 06.10.2012
Сообщений: 60

там нет ни конструкторов, ни объектов с методами которые могут вернуть 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() );
Ответить с цитированием
  #6 (permalink)  
Старый 05.07.2013, 15:54
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вызов метода внутри метода при инициализации плагина SergXP jQuery 0 01.07.2013 22:27
Вызов метода из метода qwermjk Общие вопросы Javascript 25 16.10.2012 12:38
Наследование класса-замыкания и вызов метода предка BobiKK Общие вопросы Javascript 2 21.03.2010 13:26
Как в событие объекта передать свойство метода DVVID Events/DOM/Window 8 22.02.2010 12:30
AJAX, вызов из метода обьекта Logo Общие вопросы Javascript 4 20.06.2009 23:35