Принято ли в 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, время: 10:39. |