首页 > 代码库 > 函数深入理解---函数的属性length和方法call 和apply
函数深入理解---函数的属性length和方法call 和apply
函数同样有两个非常好用的属性:length 和prototypefunction fn1(){}function fn2(num1,num2){}function fn3(num1){}//函数的length就表示该函数所期望的参数值alert(fn1.length) // 0alert(fn2.length) // 2alert(fn3.length) // 1call 和apply方法查可以通过函数名称来调用函数对于apply而言有两个参数,第一个是调用的上下文,第二个是参数数组,可以直接把arguments传递进去对于call而言第一个参数是上下文对象,后面的参数是不同函数参数function sum(num1,num2){ return num1 + num2;}function callSum1(num1,num2){ //使用sum 这个函数来完成一次调用,调用的参数就是callSum1这个函数的参数 //apply的第二个参数表示一组参数的数组 return sum,apply(this,arguments)}function callSum2(num1,num2){ // 关键就是第二个参数是数组 return sum.apply(this,[num1,num2]);}alert(callSum1(12,22));alert(callSum2(22,32));function callSum3(num1,num2){ //call是通过参数列表来完成传递,其它和apply没有任何区别 return sum.call(this,num1,num2);}alert(callSum3(12,22));/* 当需要创建一个类的时候,设置类的属性和方法需要通过this关键字来引用 但是特别注意:this关键字在调用时会根据不同的调用对象变得不同*/var color = ‘red‘;function showcolor(){ alert(this.color);}//创建了一个类,有一个color的属性和一个show的方法function circle(color){ this.color = color;}var c= new Circle(‘yellow‘);showColor.call(this) //使用上下文来调用showColor,结果是redshowColor.call(c); //上下文对象是以,结果就是yellow/* 通过以上发现,使用call和apply之后,对象中可以不需要定义方法了 这就是call和apply的一种运用*/
函数深入理解---函数的属性length和方法call 和apply
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。