07.12.2014, 15:48
|
Профессор
|
|
Регистрация: 09.11.2014
Сообщений: 610
|
|
Сообщение от nerv_
|
Если очень хочется пихать объекты с циклическими ссылками, то массивы.
|
С какими чиклическими ссылками? Я выше показал, что с объектами ф-ция вообще работает некорректно, с любыми объектами. А учитывая то, что в js все есть объект, ф-ция не работает в общем случае. Не понимаю, откуда в треде столько поросячего восторга. Ставлю палец вниз
|
|
07.12.2014, 16:15
|
|
junior
|
|
Регистрация: 29.11.2011
Сообщений: 3,924
|
|
krutoy, я рад, что ты открыл для себя функцию Object.create(). Жаль, что только ее
Сообщение от krutoy
|
Я выше показал, что с объектами ф-ция вообще работает некорректно
|
а я показал, куда тебе идти Шутка) Не показывал еще, но если будешь настаивать, то покажу)))
иди почитай что такое JSON
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
|
|
07.12.2014, 16:24
|
Профессор
|
|
Регистрация: 09.11.2014
Сообщений: 610
|
|
nerv_,
Я ничего не понял. Что не так в моем коде? JSON.stringify берет только верхнюю (ближний хеш) часть объекта, которая объектом, безусловно не является. И ты так и не ответил, причем тут циклические ссылки.
А Object.create тут не при чем, он взят в качестве примера. с юбым прототипом и их цепочкой, будет то же самое.
|
|
07.12.2014, 16:34
|
|
Профессор
|
|
Регистрация: 22.03.2012
Сообщений: 3,744
|
|
Сообщение от nerv_
|
стандартный прием)
|
ну мы-то люди простые, институтов не кончали
идём от очевидного, где-то надо хранить - в переменной, массиве, объекте, до ключа объекта не догадались
|
|
07.12.2014, 16:38
|
Профессор
|
|
Регистрация: 09.11.2014
Сообщений: 610
|
|
Сообщение от bes
|
до ключа объекта не догадались
|
Ключ объекта в этом смысле является эквивалентом переменной. Все переменные в JS фактически также являются св-ми объекта, на считая некоторых деталей. Поэтому, мне тоже не понятно, чему ты удивляешься. Есть всего лишь строка, которая сслыается на объект.
|
|
07.12.2014, 16:41
|
|
Профессор
|
|
Регистрация: 22.03.2012
Сообщений: 3,744
|
|
Сообщение от krutoy
|
Ключ объекта в этом смысле является эквивалентом переменной. Все переменные в JS фактически также являются св-ми объекта, на считая некоторых деталей. Поэтому, мне тоже не понятно, чему ты удивляешься. Есть всего лишь строка, которая сслыается на объект.
|
ладно, будем считать, что тогда уже поздно было, мозг плохо работал
|
|
07.12.2014, 16:42
|
Профессор
|
|
Регистрация: 09.11.2014
Сообщений: 610
|
|
bes,
Это идет, видимо, от общего, превратного понимания JS, в массе. JS является чистейшим ООП языком, в стиле смолтока или селфа, то есть, ООП в хорошем смысле этого слова. В подобных семантиках, надо рассматривать ключ объекта, как предикат, определяющий, может ли объект принять данное сообщение, "знает" ли он данное определение.
|
|
07.12.2014, 16:45
|
Профессор
|
|
Регистрация: 09.11.2014
Сообщений: 610
|
|
bes,
Но, в целом, ф-ция -- говно, см мои комменты выше. Ее написал не "гений", как ты выразился, а, мягко говоря, чел далекий от понимания JS.
|
|
07.12.2014, 16:54
|
|
Профессор
|
|
Регистрация: 22.03.2012
Сообщений: 3,744
|
|
Сообщение от krutoy
|
bes,
Но, в целом, ф-ция -- говно, см мои комменты выше. Ее написал не "гений", как ты выразился, а, мягко говоря, чел далекий от понимания JS.
|
Сообщение от krutoy
|
JSON.stringify
|
так лучше?
Array.prototype.slice.call(arguments).toString()
|
|
07.12.2014, 17:04
|
Профессор
|
|
Регистрация: 09.11.2014
Сообщений: 610
|
|
Сообщение от bes
|
так лучше?
|
не думаю
f=function(arg){
return [].slice.call(arguments).toString()
}
o1=Object.create({a: 1})
o2=Object.create({a: 2})
alert(f(o1))
alert(f(o2))
// [object Object]
// [object Object]
что мы будем сравнивать?
А если так
f=function(arg){
return [].slice.call(arguments[0]).toString()
}
o1=Object.create({a: 1})
o2=Object.create({a: 2})
alert(f(o1))
alert(f(o2))
вернем 2 пустые строки, в даном случае, то есть, те же яйца сбоку.
|
|
|
|