我正在学习使用 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
。提前致谢。
最佳答案
对象字面量不像构造函数那样工作。
就像lante说的,你必须设置一个标识符并为其分配一个值(或函数)才能使其工作。它基本上就像一个包含键/值对的数组。
构造函数的代码(作为另一种方法):
function myObject() {
this.foo = 'bar';
this.talk = function() {
alert('talk fired');
}
}
var obj = new myObject();
obj.talk();
构造函数和对象文字之间的区别是:构造函数可以具有私有(private)函数和属性,其中文字始终具有公共(public)访问权限(除非您使用的是内部函数)。 this.talk()
是一个公共(public)函数,可以被外部调用。如果您键入 function talk()
而不是 this.talk
那么它是私有(private)的,不能通过 obj.talk();
关于javascript - 未捕获的语法错误 : Unexpected identifier in Object Literal,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27826057/