最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

call(),apply()的用法

来源:动视网 责编:小采 时间:2020-11-27 20:12:09
文档

call(),apply()的用法

call(),apply()的用法:1、call()和apply()的作用是改变this指向,区别是传参列表不同(前者连续参数,后者为参数数组)2、方法定义: function.apply(thisObj[, argArray]) function.call(thisObj[, arg1[, arg2[, [...argN]]]]); 特别地,当没有传
推荐度:
导读call(),apply()的用法:1、call()和apply()的作用是改变this指向,区别是传参列表不同(前者连续参数,后者为参数数组)2、方法定义: function.apply(thisObj[, argArray]) function.call(thisObj[, arg1[, arg2[, [...argN]]]]); 特别地,当没有传
 1、call()和apply()的作用是改变this指向,区别是传参列表不同(前者连续参数,后者为参数数组)

2、方法定义:

 function.apply(thisObj[, argArray])
 function.call(thisObj[, arg1[, arg2[, [,...argN]]]]);

特别地,当没有传参数时,function.call() 相当于执行这个function

3、实例:

由于apply()和call()方法作用是一致的,因此这里以call()为例,apply()同理:

 //定义一个Car的构造函数
 function Car(name,height){
 this.name=name;
 this.height=height;
 }

 function Maserati(name,age,height,width){
 this.name=name;
 this.age=age;
 this.height=height;
 this.width=width;
 }
 可以发现这里函数2包含了函数1的所有属性,即是继承的意思
 因此函数2这里可以用call()方法改写成
 function Maserati(name,age,height,width){
 Car.call(this,name,age);//此处this就是指向Maserati,此时Maserati就拥有Car的所有属性和方法了。
 this.height=height;
 this.width=width;
 }
 var a=new Maserati("maserati",23,188,98);

得到如下结果:

文档

call(),apply()的用法

call(),apply()的用法:1、call()和apply()的作用是改变this指向,区别是传参列表不同(前者连续参数,后者为参数数组)2、方法定义: function.apply(thisObj[, argArray]) function.call(thisObj[, arg1[, arg2[, [...argN]]]]); 特别地,当没有传
推荐度:
标签: 使用 用法 call
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top