【发布时间】:2013-06-18 00:56:31
【问题描述】:
我正在看书。 Javascript,Douglas Crokford 的优秀部分。书中提供了一些例子,但我无法理解这些例子在哪里以及如何在实践中有用。为了简单起见,我在这里修改了代码。 这里有两种方法,我可以对变量进行函数赋值。
例子1:
var test= function(ex) {
alert(ex);
};
test(5);
这会产生值为 5 的警报框
例子2:
var test1 = function test2(ex) {
alert(ex);
};
test1(7); //this produces alert box with value of 7
test2(8)//this does not give a alert box
我已经定义了函数 test2,但将它分配给了 test1。为什么我不能通过调用 test2(8) 直接访问 test2。 此外,我认为示例 2 与示例 1 相比没有任何大的优势。如果您有一些差异,并且其中一个更出色,我想听听。
谢谢
【问题讨论】:
-
您没有名为 test2 的函数 :( 使用 var test2 = function test2(ex) { alert(ex); }; 或 test1(8) 都会发出警报。
-
这在MDN 上有很好的解释。
-
相关:JavaScript: var functionName = function() {} vs function functionName() {}。您所询问的函数声明样式在this answer 中进行了解释。
-
@sharif:我正在将名为 test2 的函数分配给变量 test1。所以我认为函数 test2 存在。对不对?
标签: javascript function object