在构造函数内部或外部设置类属性的默认值有什么区别?

时间:2014-09-03 11:14:09

标签: angularjs typescript

我的代码如下所示:

interface IConfigService {

    admin: {
        x: number;
    }

class ConfigService implements IConfigService {

    admin = this.getDefaultAdminConfigs();

    constructor() {
        this.admin = this.getDefaultAdminConfigs();
    }

private getDefaultAdminConfigs = () => {
        return {
            x: 99
        };
    }
}

当我使用AngularJS设置我的configService时,有人能告诉我在构造函数外部或内部设置admin的值有什么区别吗?

1 个答案:

答案 0 :(得分:1)

不是你的情况。这只是最后执行的内容的问题。 内联初始化之后执行构造函数体,例如:

class Foo {
    admin = 123;
    constructor() {
        this.admin = 456;
    }
}

var foo = new Foo();
console.log(foo.admin); // 456

如果构造函数中有XHR或者在此之前要初始化某个其他属性,那么它可能更相关。

注意:内联初始化也按定义顺序执行。