我仍然是JavaScript的新手,我注意到了(语法只是我希望)方法定义方式的一些差异。
一些(根据{{3}})被定义为
MyObj = function(){
myMethod: function(){...}
}
而其他时候它们可能被定义为
MyObj = function(){
function myMethod(){...}
}
我希望这只是做同样事情的两种不同方式,也是以同样的方式处理(并在内部表示)。
是这样的吗?
是否允许以与类相同的模式编写方法,例如
MyObj = function(){
myMethod = function(){...}
}
答案 0 :(得分:1)
您的两个示例都不正确。我怀疑你的意思是:
MyObj = {
myMethod: function(){/*...*/}
};
和
MyObj.myMethod = function myMethod(){/*...*/};
// or
MyObj.myMethod = function(){/*...*/};
在第一个示例中,正在使用对象初始值设定项来创建对象并将其分配给变量MyObj
。对象初始值设定项由propertyName: propertyValue
形式的一系列属性初始值设定项组成。在该示例中,属性名称为myMethod
,属性值为匿名函数声明。
在第二个示例中,对象已经存在,我们只是使用正常的赋值表达式将属性添加到现有对象。
在这两种情况下,是的,你最终得到了一个名为myMethod
的属性,它引用了一个函数。