Javascript函数中混合了反对符号和常规样式?

Javascript函数中混合了反对符号和常规样式?,javascript,function,coding-style,declaration,Javascript,Function,Coding Style,Declaration,对于精通javascript的程序员来说,有一个小问题:有两种方法可以在javascript中声明函数 A:javascript对象表示法 function MyLittleHouseA(name) { this.age = 88, this.name = name, this.getName = function() { return this.name; } } B:uhm,正常: function MyLittleHouseB(na

对于精通javascript的程序员来说,有一个小问题:有两种方法可以在javascript中声明函数

A:javascript对象表示法

function MyLittleHouseA(name) {
    this.age = 88,
    this.name = name,
    this.getName = function()
    {
        return this.name;
    }
}
B:uhm,正常:

function MyLittleHouseB(name) {
    this.age = 88;
    this.name = name;
    //do some more proceduaral stuff upon 'construction'
    this.age = this.age + 20; 
    this.getName = function()
    {
        return this.name;
    }
}
我发现一个更优雅的(并且有许多对象我想变成可配置的选项…),但可能想在创建实例时做更多的事情,因此我确实需要如B所示

这些可以混合吗?


“谢谢

第一个选项不使用对象表示法。如果要使用对象表示法,可以编写如下内容:

function MyLittleHouse(name) {
    var age = 88;
    age += 20;
    return {
        getName: function() {
            return name;
        }
    }
}
这样做的好处是不使用
This
,这意味着您可以避免与
This
绑定有关的任何问题。它还隐藏了
age
name
,这可能是可取的,也可能是不可取的——目前来看,
age
无法访问,而
name
是不可变的,因为它只能通过
getName
读取。如果要将
age
作为普通字段公开:

function MyLittleHouse(name) {
    var age = 88;
    age += 20;
    return {
        age: age,
        getName: function() {
            return name;
        }
    }
}

第一个选项不使用对象表示法。如果要使用对象表示法,可以编写如下内容:

function MyLittleHouse(name) {
    var age = 88;
    age += 20;
    return {
        getName: function() {
            return name;
        }
    }
}
这样做的好处是不使用
This
,这意味着您可以避免与
This
绑定有关的任何问题。它还隐藏了
age
name
,这可能是可取的,也可能是不可取的——目前来看,
age
无法访问,而
name
是不可变的,因为它只能通过
getName
读取。如果要将
age
作为普通字段公开:

function MyLittleHouse(name) {
    var age = 88;
    age += 20;
    return {
        age: age,
        getName: function() {
            return name;
        }
    }
}

请不要删除这样的问题。要么完全删除它(在你的问题下面应该有一个删除按钮),要么保留它,即使你不再需要答案。人们已经回答了这个问题,这些信息留给其他人看,但是现在答案没有意义了,因为问题文本已经改变了。所以,请决定是要保留它,还是完全删除它。请不要删除这样的问题。要么完全删除它(在你的问题下面应该有一个删除按钮),要么保留它,即使你不再需要答案。人们已经回答了这个问题,这些信息留给其他人看,但是现在答案没有意义了,因为问题文本已经改变了。所以决定你是想留下它,还是完全删除它。迈克尔,回答得很好!比我的问题好多了!事实上,我正在处理所有这些“这种”麻烦。这会帮我大忙的。。。另外,我喜欢“配置对象”冒号样式…Michael,回答得很好!比我的问题好多了!事实上,我正在处理所有这些“这种”麻烦。这会帮我大忙的。。。另外,我喜欢“配置对象”冒号样式。。。