函数部分分为几个部分:
1.介绍函数定义的方法
http://blog.csdn.net/github_34514750/article/details/51049908
2.介绍函数内部的对象
http://blog.csdn.net/github_34514750/article/details/51336321
3.本篇介绍函数属性和方法
4.IIFE立即调用函数表达式
http://blog.csdn.net/github_34514750/article/details/52883401
1.函数属性length和prototype
1.1函数属性length
length属性表示函数希望接收的命名参数的个数
function sayName(name) {
alert(name);
}
alert(sayName.length);//1
1.2函数属性prototype
此属性保存了所有实例方法的真正所在
2.函数两个非继承而来的方法apply(),call()
二者都是改变函数的作用域,但二者参数不同
好处:对象不需要和方法有任何耦合关系
2.1函数方法apply()
apply()接收两个参数:
一个是函数运行的作用域(this),另一个是参数数组。
function sum(num1,num2){
return num1+num2;
}
// this这里传入的是window对象
function callSum1(num1,num2){
return sum.apply(this,arguments);
}
alert(callSum1(10,20));//30
2.2函数方法call()
call()方法第一个参数与apply()方法相同,但传递给函数的参数必须列举出来。
function sum(num1,num2){
return num1+num2;
}
function callSum(num1,num2){
return sum.call(this,num1,num2);
}
alert(callSum(10,10));//20