1、通过函数建立工厂
2、函数的重要性质
1)arguments:用于函数的参数的个数不确定时使用
实现拼接字符串
2)函数的方法
可以改变函数的this指向
call 需要把参数按顺序传递进去,而 apply 则是把参数放在数组里。
bind call apply
数组之间追加
var array1 = [12 , "foo" , {name "Joe"} , -2458];
var array2 = ["Doe" , 555 , 100];
Array.prototype.push.apply(array1, array2);
/* array1 值为 [12 , "foo" , {name "Joe"} , -2458 , "Doe" , 555 , 100] */
获取数组中的最大值和最小值
var numbers = [5, 458 , 120 , -215 ];
var maxInNumbers = Math.max.apply(Math, numbers), //458
maxInNumbers = Math.max.call(Math,5, 458 , 120 , -215); //458
number 本身没有 max 方法,但是 Math 有,我们就可以借助 call 或者 apply 使用其方法。
验证是否是数组(前提是toString()方法没有被重写过)
functionisArray(obj){
returnObject.prototype.toString.call(obj) === '[object Array]' ;
}
类(伪)数组使用数组方法
var domNodes =Array.prototype.slice.call(document.getElementsByTagName("*"));
3、函数的属性
length
var ad=function add();
ad.length()=2:在函数声明时就已经确定
ad.argument.length=参数的个数
4、
5、立即执行函数与闭包
6、构造函数
instanceOf