我总是在对象上声明属性,如果我知道我会在某些时候在我的代码中使用它们(为了帮助其他开发人员在调试过程中将新属性添加到对象时不会感到惊讶并且想知道它在哪里或为什么填充):
var TestHelper = function(){
var Test = function(){
// Public:
this.a = null; // string
this.b = null; // number
}
// Public:
return {
/*Test*/ TestFunction: function(str, num){
var test = new Test();
test.a = s;
test.b = num;
return test;
}
}
}
当我遇到这样的代码时,我会感到很沮丧:
var TestHelper = function(){
var Test = {};
// Public:
return {
/*Test*/ TestFunction: function(str, num){
var test = new Test();
test.a = s;
test.b = num;
return test;
}
}
}
甚至更难(失去了对调试有帮助的javascript类型)
var TestHelper = function(){
// Public:
return {
/*{}*/ TestFunction: function(str, num){
return {
a = s,
b = num
}
}
}
}
...因为它让我们更难理解原始开发人员的想法。
无视我的意见,
答案 0 :(得分:0)
当然,开发人员更喜欢记录的内容,对他们来说更容易。
Javascript中的一个好习惯是避免使用未定义的值,因此,使用null值或空数组或空对象初始化对象要好得多。
但是你遗忘了你的最后一个案例 - >如果可能,这种方法是最好的:
function Test(str, num){
this.a=str;
this.b=num;
return this;
}
Test.prototype.method = function(a){...}//adding method to the object Test
var test = new Test("toto", 5);
test.method(a);//executing method