javascript (三)
javascript - 基础 - 函数篇
ES5、
2017-12-05
资料整理
函数
函数的调用
- 作为函数
- 作为方法
- 作为构造函数
- 通过他们的
call()
和apply()
方法间接调用
实参对象
arguments
并不是真正的数组,它是一个实参对象。每个实参对象都包含以数字为索引的一组元素以及 length
属性。
自定义函数属性
javascript
中的函数并不是原始值,而是一种特殊的对象,也就是说函数可以拥有属性。
/*
* 初始化函数对象的计算器属性。
* 由于函数声明提前了,这里是可以在函数声明之前给它的成员赋值的。
*/
number.count = 0;
/*
* 每次调用这个函数都会返回不同的整数。
* 它使用一个属性来记住下次将要返回的值。
* 先返回计数器的值,然后计数器加1。
*/
function number(){
return number.count++
}
作为命名空间的函数
为众人说熟知的立即执行函数:
(function(){
// 局部变量,防止污染全局变量
}())
函数声明语句和函数定义表达式的区别?
/*
* 函数声明语句
*/
function fn(){
// some code
};
/*
* 函数定义表达式
*/
var a = function(){
// some code
};
两种方式都创建了新的函数对象, 但函数声明语句的函数名是一个变量名, 变量指向函数对象, 和通过var声明变量一样,函数定义语句中的函数被显示 地提前到了脚本或函数的顶部, 因此它们在整个脚本和函数内都是可见的,但是使用var 表达式定义函数, 只有变量声明提前了,变量初始化代码仍然在 原来的位置, 用函数语句创建的函数, 函数名称和函数体均被提前,所以我们可以在声明它之前就使用它。