Pull to refresh
19
0
Send message

Тема интнрестная и полезная, не дочитал только по одной причине - все в рублях.

Никакой политики, но ты ж пишешь про ИТ, на ресурсе который международный, ну серьезно?! Ну это ж не Хабаровский форум... (

При нажатии Submit
Loading pusher… widget.min.js:2
Asset pusher(js) is loaded widget.min.js:2
All assets are loaded widget.min.js:2
Authorizing… widget.min.js:2
Fetching comments widget.min.js:2
Authorized: true widget.min.js:2
Fetched 3 comments widget.min.js:2
Uncaught TypeError: Cannot read property 'error' of undefined widget.min.js:3
Chrome Версия 26.0.1410.43 m
Пардон фигню написал(спешил). Я хотел сказать разницу между самими ссылочными и элементарными типами.
Вообще Silver_Clash абсолютно прав! Видимо просто qmax`у довольно сложно понять разницу передачи по значению между ссылочными типами и элементарными.
То есть вы имеет в виду что правильнее написать«свойство начинает ссылаться на новый объект» ??
Свойство не может быть ссылкой или объектом. Значение свойства может быть примитивным значением (необернутые числа, строки) или ссылкой на объект.
Вам не кажется что вы придираетесь к формулировкам???

Здесь вообще ересь написана. Это не добавление свойств в прототип, а замещение прототипа новым объектом. И в первую очередь нужно объяснить, что {} создаёт объект, и что x = { a: 5 }; это то же самое, что x = new Object(); x.a = 5; и так далее по всему тексту такие ляпы, которые на самом деле только запутывают.
Цытата из статьи:«Во-вторых обычное присвоение переменной объекта, типа: var a = {}, интерпретатором на самом деле выполняется как var a = new Object(). А это значит, что свойство prototype функции-конструктора теперь содержит совершенно новый объект»
«То есть в отличии от Примера1 здесь мы не «добавили в хранилище свойство» и даже не «переписали хранилище заново», мы просто создали новое, разорвав связь с старым»
Скорее всего вы просто не дочитали статью и не потрудились понять… Дочитывайте статью полностью, а потом пишите гневные сообщения!
Ну не все сразу Уважаемый, я так же сказал что это цикл статей. Я кончено мог в одной статье расшифровать все термины стразу, но это была бы книга а не статья. Постепенно я буду раскрывать суть терминов. И про кучи поговорим, и про области видимости и про то чем отличается var a=2 от a=2. Терпение!
Вы знаете я например не очень люблю придираться настолько к словам. Тем более в вашем случае я вообще не понимаю что вам не понравилось.
«А перменная или свойство объекта связывается с положенным в кучу объектом.»
Я не о каких свойствах объекта в указанном вами отрывке не говорил. А если вам интересно, то переменные хранятся в так называемом «объекте переменных» (Variable object, сокращённо VO) – это объект имеющий связь с контекстом исполнения. Он хранит в себе например:
— переменные (var);
— декларации функций (FunctionDeclaration, сокращённо FD);
— и формальные параметры функции,
объявленных в данном контексте.
Я бы даже уточнил и сказал бы, что там по сути складывается undefined, а undefined+undefined(или просто) +undefined приводится к NaN
Вы наверно не совсем поняли меня.Под «матрёшкой» Object(Number(x)) я не имел ввиду стек вызовов, я имел ввиду абстрактное представление примитива в случае обращения к нему как к объекту. Ну мол если с числом 5 будут обращаться как с объектом, то оно временно преобразуется(обернется) в объект при помощи new Number(5), а Number в свою очередь имеет в родителях Object. Именно данную иерархию наследования я пока и назвал «матрёшкой» и попытался отобразить в такой записи Object(Number(x), но это конечно не стек вызовов.
Очень красочный пример. я как раз говорил о том почему a.prop; // undefined
По поводу new в следующей статье
Такого бреда не будет, как вы написали. Если вы в консоли напишете b = new Number(2) а потом b.__proto__ то увидите, что b «унаследовано» от Number. Если продолжите и напишете b.__proto__.__proto__, то узнаете что Number унаследовано от Object. И если уж совсем не лень написать b.__proto__.__proto__.__proto__, то узнаете что Object не имеет наследников, он произведен от null. А что вы за бред написали я не знаю.
Ну продолжать мне или нет я сам как-то решу(Могу лишь вам посоветовать читать или нет). А с чего вы взяли это: «Object(Object(Object(...(Object(Number(x))...)))» я не знаю. действительно бред.
Очень неприятно что у вас сложилось обо мне такое мнение что я, извольте, ментор. Я ещё очень много не знаю и надеялся, что комментарии здесь будут в стиле советов, а не нравоучений и что я и сам после написания ещё что-то новое узнаю. Но к сожалению сложилось мнение что большинство хабролюдей считают, что коль ты выложил здесь статью то должен знать абсолютно все, а если где-то пропустил, то не совет тебе а минус)) Очень жаль, но тоже опыт!
Делить я никого не хотел, просто понимаю что есть люди которые только синтаксис учат, а есть которые уже и опыт имеют. А угодить хотелось всем. Прочувствовал это, поскольку перед публикацией провел небольшую лекцию по данной теме у себя в фирме и появлялись очень «глупые» вопросы даже на таком уровне абстрагирования в некоторых моментах. Что было бы если бы я сразу начал углубляться — я не знаю, но в статье этого делать не стал.
Я указал в перечне Хабов этой статьи Веб-разработка, что подразумевает, что я пишу о JS в контексте браузера(по крайней мере я так думал). По этому я не стал уточнять тонкости других реализаций. Ну а смысла спора по поводу null и undefined и то как я их описал я не вижу. Концептуальных ошибок я кажется не сделал!
Обожаю когда удается прийти к консенсусу! Спасибо за хоть и такое, но все же внимание к моей статье.
Спасибо за интересный вопрос и сразу же за ответ который не дали мне высказать самостоятельно(а жаль). =)
Вы вероятно поторопились и написали глупость(поскольку instanceof не может равняться object — он возвращает true/false). Возможно вы имели ввиду typeof(null) — но тут причина в том что это значение берется из таблицы как я уже писал в статье.
1

Information

Rating
Does not participate
Location
Запорожье, Запорожская обл., Украина
Registered
Activity