Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   метод по умолчанию у объектов (https://javascript.ru/forum/misc/34035-metod-po-umolchaniyu-u-obektov.html)

DragorWW 18.12.2012 17:15

метод по умолчанию у объектов
 
В общем интересует следующая возможность: иметь метод по умолчанию при отсутствии метода.
function A() {
    this.one = function () {
        return 'one'
    };
    return 'a';
};
a = new A;

и при этом чтобы перемена выдавала при вызови себя (return 'a';) а при вызови a.one соответственно one

В пхп например это метод класса с его именем.

заранее спасибо

---
На самом деле интересует логика например как у массивов.
asd = Array(1,1,1);
при этом при вызови asd мы получим массив, но у него всё же есть методы, как можно сделать нечто подобное

cyber 18.12.2012 17:49

DragorWW, с трудом понял ваш шифр, вы хотите добавить объектам Array свой метод?

DragorWW 18.12.2012 18:03

Я хочу создать объект который бы при обращение к себе возвращал например переменную.
Сейчас же, если я создам объект a = new A; // a вернет сам объект A { one=function()}
а мне нужно, что бы a вернуло значение из return функции

cyber 18.12.2012 18:11

function foo(){

return (function () {
 return 5;
}());

};

alert(foo());

DragorWW 18.12.2012 18:22

Нет, это не то.
Нужен именно объект который возвращает перемену при обращение к нему.
asd = new foo// вернуло бы 5

cyber 18.12.2012 18:25

function foo(){

};

foo.prototype.one = function () {
 alert("one");
};

var f = new foo;

f.one();

DragorWW 18.12.2012 18:42

сейчас переменная f возвращает объект foo, если к ней обратиться
var f = new foo; // вернёт foo

а мне нужно что бы было так
var f = new foo; // вернёт 5

godofjavascript 18.12.2012 19:12

function Cat(){
   this.valueOf = function(){ return 11 }
}

alert( 3 + new Cat )


Здравствуйте!

Судя по вашему сообщению, вы ну совсем не знаете javascript.

Освойте основы языка и вопрос отпадет сам, полностью или частично.
А с чем не справитесь - поможем.

На сайте javascript можно начать изучать с учебника, раздел Основы javascript.
Возможно, вам также понадобится HTML - учебник есть, например, здесь: http://ru.html.net/tutorials/html/

Задавайте конкретные вопросы по ходу дела.

п.с. valueOf может возвращать только примитивные типы данных, то есть все кроме обьектов

DragorWW 18.12.2012 20:09

Извиняюсь что так долго мучаю вас, но очень хотелось бы прояснить этот момент для себя.

Нет это опять же не то.

Нашёл что объекты возвращают [[DefaultValue]] либо сам объект, либо значение, в зависимости от типа обьекта.
Есть ли возможность сделать так для своих обьектов

пример:
aaa = new Array(1,1); // выведет [1,1]
function CustomObject() {
this.valueOf = function(){ return 'aaa' }
}
bbb = new CustomObject // выведет CustomObject (сам себя)

как сделать что бы мой объект вёл себя как к примеру array ведёт себя в подобном случае.

godofjavascript 18.12.2012 20:21

Цитата:

Сообщение от DragorWW
Нет это опять же не то.

нет это именно то что ты просил

Цитата:

Сообщение от DragorWW
выведет CustomObject (сам себя)

в смысле? а с чего это new CustomObject должен вести себя не как CustomObject ??

Цитата:

Сообщение от DragorWW
Нашёл что объекты возвращают [[DefaultValue]] либо сам объект, либо значение, в зависимости от типа обьекта.
Есть ли возможность сделать так для своих обьектов

есть и я тебе её показал

Цитата:

Сообщение от DragorWW
как сделать что бы мой объект вёл себя как к примеру array ведёт себя в подобном случае.


function CustomObject (){
    return []
}

var qqq = new CustomObject;


кэп


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