js apply 实现原理,jquery apply用法_1

js apply 实现原理,jquery apply用法,js中apply方法的使用详细解析

本文详细总结了js中apply方法的使用。有需要的朋友可以过来参考一下,希望能帮到你。

1、对象的继承,一般的做法是复制:Object.extendprototype.js通过复制如下代码实现:object . extend=function(destination,source){ for(property in source){ destination[property]=source[property];}返回目的地;}除此之外,还有一个方法,就是:Function.apply(当然也可以用Function.call)

Apply方法可以劫持另一个对象的方法并继承另一个对象的属性。

Function.apply(obj,args)方法可以接收两个参数。

obj:此对象将替换函数类中的此对象。

args:这是一个数组,将作为参数传递给函数(args-arguments)。

应用示例代码如下:复制代码代码如下:脚本函数person (name,age){//定义一个类,human this.name=name//名字this.age=age//age this . say hello=function(){ alert(' hello ')};} function Print(){ //显示类this.funcName='Print '的属性;this . show=function(){ var msg=[];for(var key in this){ if(type of(this[key])!='function'){ msg.push([key,':',this[key]]。join(“”);} } alert(msg . join('));};}函数student(姓名,年龄,年级,学校){//学生类Person.apply(this,arguments);Print.apply(this,arguments);this.grade=年级;//grade this . school=school;//school } var P1=新人(' jake ',10);P1 . say hello();Var=新生(' Tom ',13,6,'清华小学');S1 . show();S1 . say hello();alert(S1 . funcname);/script student类本来没有任何方法,但是在Person.apply(this,arguments)之后,

他有sayhello方法和Person类的所有属性。

show()方法是在Print.apply(this,arguments)之后自动获得的。

2、利用Apply的参数数组化来提高

Function.apply()提高程序性能的技巧

让我们从Math.max()函数开始。Math.max后面可以跟任何参数,最后返回所有参数的最大值。

例如alert (math.max (5,8))//8alert (math.max (5,7,9,3,1,6))//9

但在很多情况下,我们需要找到数组中最大的元素。复制代码代码如下:var arr=[5,7,9,1]alert(math . max(arr))//这样不行。一定要这样写。

函数get max(arr){ var arr len=arr . length;for(var i=0,ret=arr[0];iarrLeni ){ ret=Math.max(ret,arr[I]);ret返回;}这样写很麻烦,效率很低。如果用apply,看代码:复制代码如下:function get max 2(arr){ return math . max . apply(null,arr);}两段代码达到了同样的目的,但是getMax2优雅、高效、简洁得多。

比如数组的push方法。var arr1=[1,3,4];var arr2=[3,4,5];

如果我们要把arr2展开,然后一个一个加到arr1上,最后让ARR1=[1,3,4,3,4,5] ARR1。Push (ARR2)显然不行。因为这样做会得到[1,3,4,[3,4,5]]

我们只能用一个循环来逐个推送(当然也可以用arr1.concat(arr2),但是concat方法并不改变arr1本身)。复制代码代码如下:var arr len=arr 2 . length for(var I=0;iarrLenI){ arr 1 . push(arr 2[I]);}自从Apply之后,事情就变得这么简单array . prototype . push . Apply(arr 1,arr2)

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 使用jquery实现图片轮播效果如何,jQuery图片轮播
  • 使用jquery实现图片轮播效果如何,jQuery图片轮播,使用jQuery实现图片轮播效果
  • 举例说明jquery中each函数的使用,jquery each()
  • 举例说明jquery中each函数的使用,jquery each(),JQuery中each()的使用方法说明
  • 一篇文章带你了解jquery动画人物,一篇文章带你了解jquery动画制作
  • 一篇文章带你了解jquery动画人物,jquery的动画,一篇文章带你了解jQuery动画
  • trigger的用法总结,jquery trigger 传参数
  • trigger的用法总结,jquery trigger 传参数,jQuery中值得注意的trigger方法浅析
  • js hover 触发事件显示另一元素,js hover 触发事件,jQuery中多个元素的Hover事件解决方案
  • js apply 实现原理,jquery apply用法
  • js apply 实现原理,jquery apply用法,js中apply方法的使用详细解析
  • js apply 实现原理,jquery apply用法,JS中apply()的应用实例分析
  • jq获取radio选中的值,jquery radio 取值
  • jq获取radio选中的值,jquery radio 取值,Jquery获取radio选中值实例总结
  • jq控制css样式,jquery 样式
  • 留言与评论(共有 条评论)
       
    验证码: