Javascript声明对象方法语法

时间:2015-09-06 17:01:13

标签: javascript function object methods

我仍然是JavaScript的新手,我注意到了(语法只是我希望)方法定义方式的一些差异。

一些(根据{{3}})被定义为

MyObj = function(){
    myMethod: function(){...}
}

而其他时候它们可能被定义为

MyObj = function(){
    function myMethod(){...}
}

我希望这只是做同样事情的两种不同方式,也是以同样的方式处理(并在内部表示)。

是这样的吗?

是否允许以与类相同的模式编写方法,例如

MyObj = function(){
    myMethod = function(){...}
}

1 个答案:

答案 0 :(得分:1)

您的两个示例都不正确。我怀疑你的意思是:

MyObj = {
    myMethod: function(){/*...*/}
};

MyObj.myMethod = function myMethod(){/*...*/};
// or
MyObj.myMethod = function(){/*...*/};

在第一个示例中,正在使用对象初始值设定项来创建对象并将其分配给变量MyObj。对象初始值设定项由propertyName: propertyValue形式的一系列属性初始值设定项组成。在该示例中,属性名称为myMethod,属性值为匿名函数声明。

在第二个示例中,对象已经存在,我们只是使用正常的赋值表达式属性添加到现有对象。

在这两种情况下,是的,你最终得到了一个名为myMethod的属性,它引用了一个函数。