Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #151 (permalink)  
Старый 01.11.2010, 17:41
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

давайте остановимся на том, что тот, кто умеет программировать без работы не останется. Или я не прав?
Ответить с цитированием
  #152 (permalink)  
Старый 01.11.2010, 18:39
Аватар для eai
eai eai вне форума
Аспирант
Отправить личное сообщение для eai Посмотреть профиль Найти все сообщения от eai
 
Регистрация: 09.07.2009
Сообщений: 36

По сути да, а вот на практике может и подругому получиться.
Приятели мои организовали конторку и бодро фигачели на VB + Office.
Бизнес анализ планирование всякое. Продукт был очень хороший.
Грил я им, переползайте на 1с!
"Что бы мы да боги компьютерные на этом говне работали..."
отвечали мне они.
Настал кризис. Нет больше ентой конторки.
Ответить с цитированием
  #153 (permalink)  
Старый 22.09.2012, 16:54
Интересующийся
Отправить личное сообщение для OctoberTide Посмотреть профиль Найти все сообщения от OctoberTide
 
Регистрация: 22.09.2012
Сообщений: 25

Читал статьи, из раздела ЧаВо этого форума. Но у меня возникли проблемы.... Не совсем понимаю, чем свойство объекта prototype отличается от свойства __proto__ реализованного в некоторых движках. Они ссылаются на один и тот же объект?
Ответить с цитированием
  #154 (permalink)  
Старый 22.09.2012, 19:37
Профессор
Отправить личное сообщение для oneguy Посмотреть профиль Найти все сообщения от oneguy
 
Регистрация: 31.05.2012
Сообщений: 396

Сообщение от OctoberTide Посмотреть сообщение
Читал статьи, из раздела ЧаВо этого форума. Но у меня возникли проблемы.... Не совсем понимаю, чем свойство объекта prototype отличается от свойства __proto__ реализованного в некоторых движках. Они ссылаются на один и тот же объект?
Нет, они обычно ссылаются на разные объекты.
У каждого объекта есть внутреннее свойство без имени (в спецификации его обозначают [[Prototype]], в некоторых браузерах оно доступно через __proto__, но это не имя его, а лишь способ доступа), которое обозначает его прототип. Во всех современных браузерах значение этого свойства доступно через Object.getPrototypeOf(obj). Цепочка прототипов объектов определяет путь, по которому у объекта при чтении или записи ищется свойство.
Свойство prototype - это обычное свойство с именем "prototype", которое могут иметь объекты. Все пользовательские функции обязательно имеют это свойство, объекты не являющимися функциями могут иметь его, а могут и не иметь. Это свойство особенно полезно, когда пользовательская функция вызывается как конструктор: у новосозданного объекта устанавливается прототип (безымянное свойство, о котором говорилось раннее) равным значению свойства prototype конструктора.
Прототипом любой функции является начальное значение Function.prototype. За исключением того, что начальное значение Function.prototype само является функцией.

Последний раз редактировалось oneguy, 22.09.2012 в 19:51.
Ответить с цитированием
  #155 (permalink)  
Старый 23.09.2012, 11:28
Интересующийся
Отправить личное сообщение для OctoberTide Посмотреть профиль Найти все сообщения от OctoberTide
 
Регистрация: 22.09.2012
Сообщений: 25

oneguy
Спасибо за подробный ответ! Очень благодарен. Стал читать спецификацию ECMA-262 5.1 и некоторые моменты становятся яснее.
Ответить с цитированием
  #156 (permalink)  
Старый 23.09.2012, 19:53
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

var object = {};
object.constructor.prototype = null;
alert(object.toString);

var object = {};
object.__proto__ = null;
alert(object.toString);
Ответить с цитированием
  #157 (permalink)  
Старый 24.09.2012, 17:19
Профессор
Отправить личное сообщение для PashPP Посмотреть профиль Найти все сообщения от PashPP
 
Регистрация: 26.07.2012
Сообщений: 281

Подписался на тему, хоть еще не листал.

Взываю в тему годных и интересных (и несложных) задачек на ООП, ну и судью моего скромного решения оной.
Ответить с цитированием
  #158 (permalink)  
Старый 25.09.2012, 13:26
Аспирант
Отправить личное сообщение для Nubi Посмотреть профиль Найти все сообщения от Nubi
 
Регистрация: 06.08.2008
Сообщений: 43

Хотелось бы проверить понимание примеров, приведенных monolithed.
Фактически и
Код:
object.constructor.prototype
и
Код:
object.__proto__
указывают на один и тот же объект.

В первом случае делая так:
Код:
object.constructor.prototype = null;
мы лишь затираем ссылку на объект, но он по прежнему доступен как object.__proto__ (object.[[Prototype]]).
Во втором случае
object.__proto__ = null;
получается потеряна не только ссылка
Код:
object.[[Prototype]]
но и
Код:
object.constructor.prototype
т.к. у объекта (прототипа) больше не существует свойства constructor.
Раз на объект (прототип) больше не указывает не одной ссылки, он уничтожается сборщиком мусора.
Верно ли я понял?
Ответить с цитированием
  #159 (permalink)  
Старый 25.09.2012, 19:24
Профессор
Отправить личное сообщение для oneguy Посмотреть профиль Найти все сообщения от oneguy
 
Регистрация: 31.05.2012
Сообщений: 396

Нет, неверно.
При выполнении object.constructor.prototype=null ничего не происходит, потому что object.constuctor равняется Object, а в нём свойство prototype имеет атрибут writable: false. В строгом режиме выдаётся ошибка.
"use strict";
var object = {};
object.constructor.prototype = null;

При выполнении object.__proto__ = null, у object прототип меняется с Object.prototype на null, при этом объект Object.prototype продолжает существовать, так как на него ещё ссылается много ссылок.
Ответить с цитированием
  #160 (permalink)  
Старый 25.09.2012, 19:58
Аспирант
Отправить личное сообщение для Nubi Посмотреть профиль Найти все сообщения от Nubi
 
Регистрация: 06.08.2008
Сообщений: 43

oneguy,
Ага, получается что строка object.__proto__ = null; просто разрывает связь текущего объекта object с его прототипом Object.prototype, правильно?
Тогда такой вопрос, раз Object.prototype продолжает существовать, его как-то можно уничтожить (не в смысле "зачем", просто любопытно)?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с javascript andruhin Общие вопросы Javascript 12 04.05.2012 10:05
Программист на JavaScript (удалённо) Vadym Работа 1 28.01.2009 13:57
Приглашаем специалиста по JavaScript. Мск, от 75 000 руб. arturus Работа 30 14.01.2009 02:30
JavaScript Developer, Санкт-Петербург (2000 - 2500 $) lampa Работа 3 26.08.2008 15:41
Нужен Старший разработчик JavaScript Yandex Работа 17 19.08.2008 16:43