2013-07-11 2 views
1

У меня есть объект, который со свойствами, 1 из этих свойств prop2 будет инициализирован позже и добавлен к этому объекту, когда он будет готов.Каков правильный способ инициализации пустого свойства объекта в JavaScript

Я хочу показать его как свойство объекта исключительно для чтения человеком, так что, когда я посмотрю на код позже, я узнаю, что он существует и будет/может использоваться.

Так что мой вопрос, что:

Что такое правильный путь инициализацию пустой свойство объекта в JavaScript

myObject = { 
    prop1: 'somevalue', 
    prop2: '' <---- ''|null|undefined|false|0|{} what is correct 
    } 

Я предполагаю, что это зависит от того, тип, который будет использоваться, и я понимаю, что что-то действительно работает, меня интересует способ наилучшей практики .

Скрипач:http://jsfiddle.net/gamelodge/DWCEa/

+0

Типы на самом деле не имеют значения в javascript, так как вы можете в любой момент изменить тип, задав объекту значение определенного типа и т. Д., Поэтому просто установить его на пустую строку в порядке, но это зависит от того, как вы намереваются использовать его, я часто устанавливаю свойства как false по умолчанию, когда я намереваюсь проверить их позже и т. д. – adeneo

ответ

5

Я обычно использую null для этой цели. Он отличается от undefined (не существует) и удовлетворяет требованию, чтобы переменная существовала, но не имеет значения.

2

Обычный способ - использовать null.

undefined будет работать также, но a) он длиннее b) это не ключевое слово c) слишком много людей используют typeof для проверки существования объекта. Это также has a little different notion.

Как вы сказали, в зависимости от ожидаемого типа вы также можете использовать любое другое подходящее значение. Пустые объекты или строки менее убедительны, тем более что объекты имеют много накладных расходов на строительство. Не используйте их, если вы не планируете использовать (расширять) их позже.

+0

Спасибо за ссылку: Мне нравится, что они говорят по этой ссылке, что поможет мне запомнить это - «неопределенный недостаток типа и значения, а null - это отсутствие значения. "- – Andre