объясните инициализацию плиз
Немогу понять элементарного что будет в var current ,и что делает к примеру wall: false
(извините балбеса ,ну правда не смог отгуглить такой вот даже элеметарщины не хочется уж совсем отставать от жизни) var $room = $('#constructor .big-frame .room'); var $window = $('#constructor .big-frame .window'); var $tulle = $('#constructor .big-frame .tulle'); var $curtain = $('#constructor .big-frame .curtain'); var $loading = $('#constructor .big-frame .loading'); var current = { wall: false, window: false, tulle: false, model: false, fabric: false, tulle_index: 0, model_index: 0, fabric_index: 0, } |
Цитата:
{ wall: false, window: false, tulle: false, model: false, fabric: false, tulle_index: 0, model_index: 0, fabric_index: 0, } создается новый объект. Это то же самое что var current = new function(){ this.wall= false this.window= false this.tulle= false this.model= false this.fabric= false this.tulle_index= 0 this.model_index= 0 this.fabric_index= 0 } console.log(current) // { wall: false, // window: false, // tulle: false, // model: false, // fabric: false, // tulle_index: 0, // model_index: 0, // fabric_index: 0 } то есть, данное выражение создает и возвращает объект. Этот объект связывается с переменной current, точней говоря, ссылка current указывает на этот объект, или, по адресу current доступен объект. Цитата:
alert(false===false) // true Выражение false не создает новый объект, как в примере выше, а возвращает уже предопределенный на уровне реализации объект, условно будем его обозначать как [[false]], который всегда находится только в одном экземпляре. То есть, что-то вроде синглтона, это выражение false всегда возвращает один и тот же объект [[false]]. Такое поведение у всех примитивных данных (строки числа etc). Соответственно, ссылка current.wall ссылается на примитив [[false]]. Все ссылки на false (как и на другие примитивы), ссылаются всегда на одно и то же. Тебе, как новичку, очень важно прочувствовать эту разницу. a={} b={} alert(a===b) a=false b=false alert(a===b) // false // true |
Оогромное спасибо за ответ по поводу( var current )более мене понятно но возникает пару вопросов.
1)в js наскок я помню любой примитив это объект и вроде объекты и примитивы передаются по ссылке (просто в моей короткой практике не видел чтоб по значения) Плз поправте если я не прав!!! ( и просто интересно в js оператор присваивания может вместо ссылки на объект передать его значение )) просто вы на этом так заостроили внимание, если да то плиз ткните в мануал или пример плззззззззззззззз!!! 2)и второй вопрос просто возникает асоциация этого объекта с набором элементов созданным вручную, или есть разница между созданными наборами скажем $("div").children() или $("div").find("span") и набором набраном в моем посте, ну конечно имеются ввиду функции возвращающие объект. По поводу( wall: false ) - (ссори без примера вообще темный лес) и возникает нубский вопрос, какую практическую ценность может иметь ссылка current.wall на примитив false |
Часовой пояс GMT +3, время: 23:29. |