在使用它们之前声明属性 - 最佳实践?

时间:2016-04-15 14:13:26

标签: javascript

我总是在对象上声明属性,如果我知道我会在某些时候在我的代码中使用它们(为了帮助其他开发人员在调试过程中将新属性添加到对象时不会感到惊讶并且想知道它在哪里或为什么填充):

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
            }
        }
    }
}

...因为它让我们更难理解原始开发人员的想法。

无视我的意见,

  • 关于这个以及为什么有各种各样的想法?
  • 大型团队一般都喜欢先申报物业以帮助其他开发商,反之亦然?
  • 我问的是正确的问题还是我错过了另一点?

1 个答案:

答案 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