js中函数内部属性arguments和this以及方法apply()和call()

简介: js中函数内部属性arguments和this以及方法apply()和call()
+关注继续查看

1.函数的内部属性

函数内部有两个特殊对象:arguments和this

arguments:主要保存函数参数

function fac(num){

if(num <=1){

return 1;

}else{

return num * fac(num-1);

}

}

//定义阶乘递归算法,这个函数的执行与函数名fac紧密耦合在一起

//为了消除耦合 可以使用arguments.call.

function fac(num){

if(num <=1){

return 1;

}else{

return num * arguments.callee(num-1);

}

}

//arguments.callee.caller来访问


2.apply()和call()

每个函数都包含两个非继承而来的方法:apply()和call()

function sum(num1,num2){

return num1 + num2;

}

function calSum1(num1,num2){

return sum.apply(this.arguments);//传入arguments对象

}

function callSum2(num1,num2){

return sum.apply(this,[num1,num2]);//传入数组

}

alert(calSum1(10,10));//20

alert(callSum2(10,10));//20

//call与apply作用相同,但使用call时传递给函数的参数必须逐个列举出来

function sum(num1,num2){

return num1 + num2;

}

function callSum(num1,num2){

return sum.call(this,num1,num2);

}

//alert(callSum(10,10));//20


相关文章
|
2月前
|
自然语言处理 JavaScript 前端开发
JavaScript 实践+理论(总结篇):作用域、闭包、this、对象原型(上)
JavaScript 实践+理论(总结篇):作用域、闭包、this、对象原型
|
2月前
|
自然语言处理 JavaScript 前端开发
this 之谜揭底:从浅入深理解 JavaScript 中的 this 关键字(二)(下)
this 之谜揭底:从浅入深理解 JavaScript 中的 this 关键字(二)(下)
|
2月前
|
JavaScript 前端开发
this 之谜揭底:从浅入深理解 JavaScript 中的 this 关键字(二)(上)
this 之谜揭底:从浅入深理解 JavaScript 中的 this 关键字(二)
|
2月前
|
自然语言处理 JavaScript 前端开发
this 之谜揭底:从浅入深理解 JavaScript 中的 this 关键字(一)
this 之谜揭底:从浅入深理解 JavaScript 中的 this 关键字(一)
|
2月前
|
JavaScript 前端开发
JavaScript中this指向问题
JavaScript中this指向问题
|
2月前
|
JavaScript 前端开发
JavaScript高级—— this与箭头函数
JavaScript高级—— this与箭头函数
|
2月前
|
JavaScript 前端开发
JavaScript中的this指向,call、apply、bind的简单实现
JavaScript中的this指向,call、apply、bind的简单实现
16 0
|
2月前
|
前端开发
前端学习笔记202305学习笔记第三十四天-js-箭头函数-箭头函数中的this
前端学习笔记202305学习笔记第三十四天-js-箭头函数-箭头函数中的this
23 0
|
2月前
|
前端开发
前端学习笔记202306学习笔记第三十五天-js-箭头函数-箭头函数中的this之1
前端学习笔记202306学习笔记第三十五天-js-箭头函数-箭头函数中的this之1
30 0
|
2月前
|
前端开发
前端学习笔记202306学习笔记第三十五天-js-箭头函数中的this
前端学习笔记202306学习笔记第三十五天-js-箭头函数中的this
24 0
相关产品
机器翻译
推荐文章
更多