function method(){}与var method = function(){}的区别
来源:互联网 发布:淘宝有货到付款的产品 编辑:程序博客网 时间:2024/06/10 09:44
简单的代码:
1
2
3
4
5
6
7
8
9
10
11
12
function say(){
method01();//method01
method02();//error
function method01(){
alert('method01');
}
var method02 = function(){
alert('method02');
}
}
say();
为什么调用方法method01能正常运行,而调用方法method02却会报错呢?
首先,你要明确的知道method01为一个函数对象,而method02为一个变量,它指向于另一个函数对象。根据上一节的内容,在'活动对象'完成的'变量实例化'(Variable Instatiation)的过程中,对函数method01进行了正常的'预解析',而对于变量method02解析为undefined值,当进入到执行代码的环节时,因为method02的调用在其计算函数表达式之前,因此将undefined当作方法调来用,必然会报错。解决方案比较简单,就是将var method02=function(){...}放到其method02()的调用之前就可以了或者是用函数声明的方式定义函数(function method(){...})。
注:计算函数表达式就是指程序执行到var method02 = function(){...}。method02此时真正指向一个函数对象。因为在'预解析'时,method02只被赋于了undefined.
0 0
- function method(){}与var method = function(){}的区别
- method 与 function的区别
- 区别method和function
- function-a(){}与var-b-=-function(){}的区别
- AS3中的一些基本定义,Function与Method的区别
- Python里method和function的区别
- scala中的method和function的区别
- var a = {} 与 var a = function(){} 的区别
- method / function
- 我所理解的Python里method和function的区别(关键词:method/方法/function/函数)
- JavaScript中Function Declaration与Function Expression 或者说 function fn(){}和var fn=function(){} 的区别
- Python函数(function)与方法(method)区别
- function a(){} 和 var a = function(){}的区别
- 方法(method)和函数(function)的区别
- js中 var a = function(){} 与function b(){}两种函数声明的区别
- function, method, unbound_method, bound_method
- python 的method obj和function obj
- javascript之var与function定义的区别
- Android--ListView点击Item展开的实现
- ArrayDeque源码图析
- 解析JSON格式数据
- Windows 7/8各版本支持最大内存容量
- 数组划分
- function method(){}与var method = function(){}的区别
- 字符串大小写转换
- Retrofit源码解析
- Table的TR之间出现空格
- Node.js学习--基础知识(9)--HTTP服务器
- 建高性能数据库缓存之redis主从复制
- EHCache的使用
- iOS 模拟器小技巧
- css之文档流