Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   функция копирования свойств (https://javascript.ru/forum/misc/4668-funkciya-kopirovaniya-svojjstv.html)

Kolyaj 12.08.2009 22:09

zzz,
извини, но я устал разгребать кашу в твоей голове :) Поспи, прочитай еще раз статьи на этом сайте, может поймешь.

Андрей Параничев 12.08.2009 22:13

var someObject = {
    "title" : "Я — объект",
    "toString" : function() {
        return "Но если меня хотят использовать, как строку, я буду ею!";
    }
}

alert(someObject.title); // Я — объект
alert(someObject); // Но если меня хотят использовать, как строку, я буду ею!

Riim 13.08.2009 04:22

Цитата:

Сообщение от zzz
Там по английски я не понимаю

http://yandex.ru/yandsearch?text=сократ+персональн й
http://www.translate.ru/text_Translation.aspx
http://translate.google.com/translate_t#

zzz 13.08.2009 07:16

То есть всё таки toString превращает в строку и выводит эту строку с помошью модального окна. Но зачем Андрей у вас как "Я объект" как "Но если меня..." вывелись одинаково хотя к строковому типу превели только вторую запись. Может чтобы использовать свойства и методы объекта String?(поправте если я не прав)

Андрей Параничев 13.08.2009 17:59

zzz,
toString() возвращает строковое представление объекта.
Она вызывается, например, когда вы пытаетесь использовать объект, как строку: вывести в модальном диалоге alert, или провести конкатенацию с другой строкой.

zzz 14.08.2009 10:29

Но можно выводить и не ввиде строки например "title" : "Я — объект",
и как уже сказали там не toString() а toString

x-yuri 14.08.2009 11:17

Цитата:

Сообщение от zzz
Но можно выводить и не ввиде строки например "title" : "Я — объект",

можно
alert('"title" : "'+someObject.title+'"');


Цитата:

Сообщение от zzz
и как уже сказали там не toString() а toString

можно считать, что alert(someObject); - то же самое что alert(someObject.toString());

zzz 14.08.2009 11:20

Дак почему метод тогда называется toString? Он превращает значение в строку или нет? Ответе наконец-то. Если превращает то почему скобок то нету. Если превращает то зачем чтобы использовать методы и свойства встроеного объекта String?

x-yuri 14.08.2009 11:39

Цитата:

Сообщение от zzz
Он превращает значение в строку или нет?

да
var a=1, b=2, c=true;
alert(a.toString == b.toString);
alert(a.toString == c.toString);
alert(typeof a);
alert(typeof a.toString());


Цитата:

Сообщение от zzz
Если превращает то зачем чтобы использовать методы и свойства встроеного объекта String?

если не надо, не используй
UPD: или ты думаешь, что в коде a.toString().replace('1', '2') ты не используешь методы объекта String?

zzz 14.08.2009 11:41

Я имею ввиду зачем превращать? Ведь и так работает. То есть если мы превратили то сможем использовать свойства и методы String?


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