bra*_*orm 0 javascript function object
我正在读这本书.Javascript,道格拉斯·克罗克福德的优秀作品.书中提供了一些例子,但我无法理解这些例子在实践中的用处和方式.为简单起见,我在这里修改了代码.这里有两种方法,我可以对变量进行函数赋值.
例1:
var test= function(ex) {
alert(ex);
};
test(5);
Run Code Online (Sandbox Code Playgroud)
这会生成值为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
Run Code Online (Sandbox Code Playgroud)
我已经定义了函数test2但是将它分配给了test1.为什么我不能通过调用test2(8)直接访问test2.此外,我没有看到示例2中的任何大优势超过示例1.如果您有一些差异,其中一个是优越的,我想听到.
谢谢
var test1 = function test2(ex) {
console.log(test2);
};
Run Code Online (Sandbox Code Playgroud)
命名函数使其能够从其体内引用自身.
test2仅test2对其子范围(函数)可见,如果有的话.
你基本上test1是在为一个名为"命名函数表达式" 的函数赋值.调试代码很有用,因为函数的名称将显示在调用堆栈跟踪中而不是"匿名函数"中.
JavaScript中的函数也是对象,因此函数的标识符是test1(函数对象),但函数本身的名称是test2,所以test1.name == 'test2'
| 归档时间: |
|
| 查看次数: |
135 次 |
| 最近记录: |