JavaScript语法

JavaScript语法,javascript,Javascript,我一直在寻找一些类似下面示例的JavaScript。有人能解释一下吗,因为我以前从未见过像这样编写JavaScript “SomethingHere”和冒号代表什么?我习惯于看到函数myFunction(),但不是下面所示的 SomethingHere: function () { There is code here that I understand. } 已编辑:未引用JSON,因为它可能被误解为数据格式 这就是JavaScript对象表

我一直在寻找一些类似下面示例的JavaScript。有人能解释一下吗,因为我以前从未见过像这样编写JavaScript

“SomethingHere”和冒号代表什么?我习惯于看到函数myFunction(),但不是下面所示的

 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()本身。确实如此。不要犹豫,在这样的情况下编辑帖子。好吧——我倾向于避免编辑别人的答案,因为这对我来说几乎总是很严厉。我想这取决于人。好吧,如果你再次访问我的帖子,请编辑:)