JavaScript语法
我一直在寻找一些类似下面示例的JavaScript。有人能解释一下吗,因为我以前从未见过像这样编写JavaScript “SomethingHere”和冒号代表什么?我习惯于看到函数myFunction(),但不是下面所示的JavaScript语法,javascript,Javascript,我一直在寻找一些类似下面示例的JavaScript。有人能解释一下吗,因为我以前从未见过像这样编写JavaScript “SomethingHere”和冒号代表什么?我习惯于看到函数myFunction(),但不是下面所示的 SomethingHere: function () { There is code here that I understand. } 已编辑:未引用JSON,因为它可能被误解为数据格式 这就是JavaScript对象表
SomethingHere: function () {
There is code here that I understand.
}
已编辑:未引用JSON,因为它可能被误解为数据格式 这就是JavaScript对象表示法。您可以创建如下函数:
var SomethingHere = function() {
};
或者
基本上,在该范围/语法中,必须有命名参数,这是将函数放入对象的方法。它是对象文字符号。这是一种使用以下形式声明对象的方法:
{
propertyName: value
}
例如:
var obj = {
fruit: "apple",
id: 123,
sayHello: function() { return "Hi"; }
};
alert(obj.fruit);
alert(obj.id);
alert(obj.sayHello());
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
您可以在Javascript中创建如下对象:
var obj = {
a: 1,
b: 2
};
您还可以具有以下功能的属性:
var obj = {
SomethingHere: function() { alert("hello"); },
b: 2
};
正如这里的一些其他答案所指出的,这是一个对象文字符号的例子。对象可以这样声明:
var myObj = new Object();
但是,它也可以用对象文字表示法声明,如下所示:
var myObj = { };
使用对象文字语法时,可以使用语法名称:value立即在打开和关闭大括号内添加方法和属性。例如:
var obj = {
fruit: "apple",
id: 123,
sayHello: function() { return "Hi"; }
};
alert(obj.fruit);
alert(obj.id);
alert(obj.sayHello());
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”是一个“方法”,意思是它是一个作为对象成员的函数。它的意义在于特殊变量this。在以下两个函数定义中,这是指浏览器窗口变量(假设在浏览器中运行代码):
但是,在本例中,此指的是封闭对象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, i.e., 42 */
/* this.location is undefined */
/* this.document is undefined */
}
};
从技术上讲,这不是JSON。它只是一个JavaScript对象。JSON是一种基于JavaScript对象的数据格式,但其语法更为严格。例如,键名必须用引号括起来。更多信息请参见:它不是JSON。JSON是一种基于JavaScript的对象文本、数组文本和各种其他基本数据类型语法的数据格式。它不包括函数。底线是“SomethingHere”是一个定义为函数的变量。您可以使用“=”在JavaScript对象之外定义函数,也可以使用“:“使之成为对象的属性。@克里斯,谢谢!我读过了,很自然,你是对的,它在技术上不是JSON。如果你想达到更高的准确性,你可以提到它是对象文字符号,而不是使用构造函数/实例/原型对象:享受阅读:)更准确地说:对象文字符号……还有你的
警报(obj.sayHello())
不正确,因为sayHello使用alert()本身。确实如此。不要犹豫,在这样的情况下编辑帖子。好吧——我倾向于避免编辑别人的答案,因为这对我来说几乎总是很严厉。我想这取决于人。好吧,如果你再次访问我的帖子,请编辑:)