使用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等,