Принято ли в js объявлять свойства в прототипе заранее?
Принято ли в js объявлять свойства в прототипе заранее?
Как будет правильно так- Test.prototype = { prop_1: undefined, prop_2: undefined, prop_3: undefined, prop_4: undefined, init: function( args ){ this.prop_1 = args.prop_1; this.prop_2 = args.prop_2; this.prop_3 = args.prop_3; this.prop_4 = args.prop_4; } }; или так - Test.prototype = { init: function( args ){ this.prop_1 = args.prop_1; this.prop_2 = args.prop_2; this.prop_3 = args.prop_3; this.prop_4 = args.prop_4; } }; |
Ой, понял какую ерунду спросил. Никак ещё не привыкну.
На первый взгляд js кажется таким простым, но его прототипную модель тяжело принять после классовой. |
Ну default-ные значения можно хранить и в прототипе. Пустые смысла не имеет само собой.
|
> Пустые смысла не имеет само собой.
имеет, что бы сразу видеть интерфейс класса, не просматривая код методов. Ну и jsdoc сразу понятно к чему писать. |
Цитата:
|
> Но вместо udef принято использовать null
если в поле будет лежать примитивное значение, я использую undef, если не примитивное - null. |
Цитата:
var foo = { /** @type {?string} */ bar: null }; var foo = { /** @type {(string|undefined)} */ bar: void 0 }; |
Разве не достаточно просто /** @type {string} */ ?
Например на этой странице http://usejsdoc.org/tags-type.html : /** @type {(string|Array.)} */ var foo; |
Ну я просто использую диалект от GCC, там обязательно точно указывать все возможные типы.
|
Часовой пояс GMT +3, время: 13:45. |