手机版

js中apply()和call()的区别及用法示例分析

时间:2021-08-30 来源:互联网 编辑:宝哥软件园 浏览:

本文讲述了js中apply()和call()的区别和用法。分享给大家参考,如下:

每个函数都包括两个非继承的方法:apply()和call()。两者的目的都是调用特定范围内的函数,相当于在函数体中重置这个对象的值。

两者唯一的区别就是接收参数的方式不同。apply()的第一个参数是调用apply的函数运行的范围,的第二个参数可以是array的实例(Array)或arguments对象,call()的第一个参数是这个的值没有改变,其他参数直接传递给函数(即逐个枚举)。

如果传入数组或参数对象,Apply会更方便。

您可以看到apply()和call()可以传递参数。更有用的是,它们还可以扩展运行:的函数的范围

var obj={ color : ' red ' };window.color='蓝色';函数getcolor(){ console . log(this . color)};getcolor . apply(obj);//redgetcolor.apply(窗口);//blue getcolor . apply(this);//blue使用在线HTML/CSS/JavaScript代码运行工具:http://tools.jb51.net/code/HtmlJsRun,测试结果如下:

一个重要的用法:

var值=[1,2,3,4,5,4,3,2,1];var max=Math.max.apply(数学,值);console.log(最大值);//5使用在线HTML/CSS/JavaScript代码运行工具:http://tools.jb51.net/code/HtmlJsRun.测试结果如下:

实际上,apply()用于接收数组,便于传递参数。apply的第一个参数可以更改为null或空字符串。

此外,bind()方法创建一个函数实例,该函数的值指向传递给bind()的值:

window.color=' redvar o={ color : ' blue ' };函数SayColor(){ console . log(this . color)};var objSayColor=SayColor . bind(o);objSayColor();//blue使用在线HTML/CSS/JavaScript代码运行工具:http://tools.jb51.net/code/HtmlJsRun,测试结果如下:

更多对JavaScript相关内容感兴趣的读者可以查看本网站专题:《javascript面向对象入门教程》、《JavaScript常用函数技巧汇总》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》、《JavaScript数学运算用法总结》、0103010

希望本文对JavaScript编程有所帮助。

版权声明:js中apply()和call()的区别及用法示例分析是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。