使用Javascript“冒号”标记匿名函数?

这个代码也是指什么?

queryString: function() { //some code } 

我在WebConsole(Firefox)中testing过它,但是它不会执行,所以我认为它不等同于function queryString() {}

那到底是什么?

你错过了一些代码,但是我认为它是这样的对象声明的一部分:

 var obj = { queryString: function() { //some code } }; obj.queryString(); 

它将一个函数指定为对象字面量的属性。 这将相当于这样的:

 var obj = {}; obj.queryString = function() { ... }; obj.queryString(); 

一般来说,对象文字的语法如下所示:

 { key: value, otherKey: otherValue }; 

所以这在控制台中不起作用的原因是它没有用{}字符括起来,表示一个对象字面值。 而这个语法只在一个对象字面上有效。

这可能是在一个地图/对象声明中,像这样:

 var obj = { queryString: function() { alert('here'); }, eggs: function() { alert('another function'); } }; obj.queryString(); 

这是一个标签https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/label

 var i, j; loop1: for (i = 0; i < 3; i++) { //The first for statement is labeled "loop1" loop2: for (j = 0; j < 3; j++) { //The second for statement is labeled "loop2" if (i == 1 && j == 1) { continue loop1; } console.log("i = " + i + ", j = " + j); } } // Output is: // "i = 0, j = 0" // "i = 0, j = 1" // "i = 0, j = 2" // "i = 1, j = 0" // "i = 2, j = 0" // "i = 2, j = 1" // "i = 2, j = 2" // Notice how it skips both "i = 1, j = 1" and "i = 1, j = 2" 

定义一个对象及其属性时使用:

 var obj = { queryString: function() { //some code } } 

现在obj.queryString是你的function。

什么

 queryString: function() { //some code } 

意思是你可以使用queryString()来调用它引用的函数。 如果你想在你的javascript中定义一个类(或一个伪类; P),通常使用这种引用。 像这样的东西,

 var application= { namespace: {} }; application.namespace.class_name = function(){ function constructor(){ return { exposed_property1 : property1, exposed_property2 : property2, ... ... } } //Write property/functions that you want to expose. // Write rest of the function that you want private as function private(){} }; 

所以现在在代码的任何其他部分,您可以为class_name创build对象并使用它来访问property1,property2等,