Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.02.2015, 02:56
Новичок на форуме
Отправить личное сообщение для obli Посмотреть профиль Найти все сообщения от obli
 
Регистрация: 08.12.2013
Сообщений: 9

объясните инициализацию плиз
Немогу понять элементарного что будет в 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,
}
Ответить с цитированием
  #2 (permalink)  
Старый 08.02.2015, 12:17
Аспирант
Посмотреть профиль Найти все сообщения от freee
 
Регистрация: 05.02.2015
Сообщений: 51

Сообщение от obli
что будет в var current
выражением
{
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 доступен объект.



Сообщение от obli
что делает к примеру wall: false
приблизительно то же самое, только объект false -- это примитивный тип, он всегда ссылается сам на себя.
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

Последний раз редактировалось freee, 08.02.2015 в 12:41.
Ответить с цитированием
  #3 (permalink)  
Старый 09.02.2015, 03:34
Новичок на форуме
Отправить личное сообщение для obli Посмотреть профиль Найти все сообщения от obli
 
Регистрация: 08.12.2013
Сообщений: 9

Оогромное спасибо за ответ по поводу( var current )более мене понятно но возникает пару вопросов.
1)в js наскок я помню любой примитив это объект и вроде объекты и примитивы передаются по ссылке (просто в моей короткой практике не видел чтоб по значения) Плз поправте если я не прав!!! ( и просто интересно в js оператор присваивания может вместо ссылки на объект передать его значение )) просто вы на этом так заостроили внимание,
если да то плиз ткните в мануал или пример плззззззззззззззз!!!

2)и второй вопрос просто возникает асоциация этого объекта с набором элементов созданным вручную, или есть разница между созданными наборами скажем $("div").children() или $("div").find("span") и набором набраном в моем посте, ну конечно имеются ввиду функции возвращающие объект.


По поводу( wall: false ) - (ссори без примера вообще темный лес) и возникает нубский вопрос, какую практическую ценность может иметь ссылка current.wall на примитив false

Последний раз редактировалось obli, 09.02.2015 в 06:28.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Array.sort(function). Объясните плиз. mnavalny Общие вопросы Javascript 14 30.09.2012 10:41
Помогите плиз!!! Anny_88 Общие вопросы Javascript 6 27.10.2011 21:12
Пожалуйста, объясните что мне сделать с этим... someLogin Events/DOM/Window 2 16.10.2011 22:47
Объясните код плиз! unlike777 Общие вопросы Javascript 15 03.05.2011 22:46
Объясните пожалуйста значение символов после переменной Анатолий Общие вопросы Javascript 1 09.01.2009 03:50