我一直在寻找一些看起来像下面这个例子的
JavaScript.有人可以解释这个,因为我之前没有看过这样的JavaScript.
什么是“SomethingHere”和冒号代表什么?我习惯于看到函数myFunction(),但不会看到下面显示的内容.
SomethingHere: function () { There is code here that I understand. }
解决方法
正如这里的一些其他答案所示,它是对象文字符号的一个例子.可以像这样声明一个对象:
var myObj = new Object();
但是,它也可以用对象文字表示法声明,如下所示:
var myObj = { };
使用对象文字语法时,可以使用语法name:value立即在打开和关闭括号内添加方法和属性.例如:
var myObj = { name: 'Dave',id: 42,SomethingHere: function() { /* function body */ } }; alert(myObj.name); // Displays Dave alert(myObj.id); // Displays 42 myObj.SomethingHere(); // Executes method SomethingHere
“SomethingHere”在这种情况下是一种“方法”,意味着它是一个作为对象成员的函数.它的意义在于特殊变量.在以下两个函数定义中,这是指浏览器窗口变量(假设在浏览器中运行代码):
function foo() { /* this.document refers to window.document */ /* this.location refers to window.location*/ } var bar = function() { /* Same as above,just a different Syntax for declaring the function. /* this.document refers to window.document */ /* this.location refers to window.location*/ }
但是,在这个例子中,这是指封闭对象myObj:
var myObj = { name = 'Dave',id = 42,myMethod: function() { /* this.name refers to the name property of myObj,i.e.,'Dave' */ /* this.id refers to the id property of myObj,42 */ /* this.location is undefined */ /* this.document is undefined */ } };