我正在使用Javascript Object Literal学习,我也在Chrome的Javascript控制台中测试了此javascript,它返回了Uncaught SyntaxError: Unexpected Identifier

工作代码

"use strict";

var myObject = {
    foo: 'bar',

    talk : function(){
        console.log('Hello world')
    }
}

myObject.talk();
console.log(myObject.foo);


但是如果我改为function talk(){}

"use strict";

var myObject = {
    foo: 'bar',

    function talk(){
        console.log('Hello world')
    }
}

myObject.talk();
console.log(myObject.foo);


它抛出以上错误Uncaught SyntaxError: Unexpected Identifier。预先感谢。

最佳答案

这是将函数分配给属性的正确语法:

var myObject = {
    foo: 'bar',
    talk: function thisNameIsOptional() {
        console.log('Hello world')
    }
};


你也可以这样:

var myObject = {
    foo: 'bar',
    talk: talk
};

function talk() {
    console.log('Hello world')
}


如您所见,语法总是相同的:

{
    literal1: (object or function),
    literal2: (object or function)

    ... and so on ...

}


您的问题的第二个错误。

如果这还不够,您有a complete guide for variables and literals on MDN

10-04 19:03