JS apply用法总结和使用场景实例分析


Posted in Javascript onMarch 14, 2020

本文实例讲述了JS apply用法总结和使用场景。分享给大家供大家参考,具体如下:

apply是绑定this到指定函数或类,也可以说把函数或者类的方法和属性给到当前作用域。

1,使用apply实现继承

function A(name, age){
   this.name = name;
   this.age = age;
  }
 
  function B(name, age, time){
   A.apply(this,[name]) //这里的name必须加上[]
  }
 
  const b = new B('继承');
  console.log(b)

2,使用apply实现多重继承

function Class10(){
 this.showSub = function(a,b){
    alert(a - b);
  }  
}
 
function Class11(){
 this.showAdd = function(a,b){
    alert(a + b);
  } 
}
 
function Class12(){
 Class10.apply(this);
 Class11.apply(this);  
 // Class10.call(this);
 //Class11.call(this); 
}
 
var c2 = new Class12();
c2.showSub(3,1);  //2
c2.showAdd(3,1);  //4

3,apply使用时传参规则

fn.apply(this,array)

在执行过程中,array参数会被转化成一个一个参数传递给函数fn

fn.apply(this,[params1,params2,...])
//相当于
fn(params1,params2,...)//这里的this指向执行fn函数的作用域

4,apply绑定this和绑定null

function C(name, age){
   console.log(this.name)
  }
 
  var name = 'windowname'
  var myObject = {name:"myA",age:"myB"};
  C.apply(myObject) //myA
  C.apply(null)//windowname
 
   function D(){
   this.name = '我是D空间'
   C.apply(this)
  }
 
  D();//我是D空间

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun测试上述代码运行效果。

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
[原创]后缀就扩展名为js的文件是什么文件
Dec 06 Javascript
jquery 面包屑导航 具体实现
Jun 05 Javascript
JS获取月的最后一天与JS得到一个月份最大天数的实例代码
Dec 16 Javascript
JavaScript的常见兼容问题及相关解决方法(chrome/IE/firefox)
Dec 31 Javascript
node.js中的fs.lchmodSync方法使用说明
Dec 16 Javascript
详细解读JavaScript编程中的Promise使用
Jul 27 Javascript
漂亮! js实现颜色渐变效果
Aug 12 Javascript
JavaScript中匿名函数的递归调用
Jan 22 Javascript
微信小程序 跳转传参数与传对象详解及实例代码
Mar 14 Javascript
angular2 ng build部署后base文件路径问题详细解答
Jul 15 Javascript
一些你可能不熟悉的JS知识点总结
Mar 15 Javascript
node事件循环和process模块实例分析
Feb 14 Javascript
javascript事件循环event loop的简单模型解释与应用分析
Mar 14 #Javascript
原生js实现ajax请求和JSONP跨域请求操作示例
Mar 14 #Javascript
js实现的订阅发布者模式简单示例
Mar 14 #Javascript
vue插槽slot的简单理解与用法实例分析
Mar 14 #Javascript
es6中new.target的作用和使用场景简单示例分析
Mar 14 #Javascript
JS中类的静态方法,静态变量,实例方法,实例变量区别与用法实例分析
Mar 14 #Javascript
js中forEach,for in,for of循环的用法示例小结
Mar 14 #Javascript
You might like
第三节--定义一个类
2006/11/16 PHP
用PHP实现多服务器共享SESSION数据的方法
2007/03/16 PHP
PHP 遍历文件实现代码
2011/05/04 PHP
PHP设计模式之责任链模式的深入解析
2013/06/13 PHP
php实现用于删除整个目录的递归函数
2015/03/16 PHP
PHP基于自增数据如何生成不重复的随机数示例
2017/05/19 PHP
收藏一些不常用,但是有用的代码
2007/03/12 Javascript
javascript 原型模式实现OOP的再研究
2009/04/09 Javascript
JavaScript中将一个值转换为字符串的方法分析[译]
2012/09/21 Javascript
js图片自动切换效果处理代码
2013/05/07 Javascript
在js文件中如何获取basePath处理js路径问题
2013/07/10 Javascript
判断在css加载完毕后执行后续代码示例
2014/09/03 Javascript
关于数据与后端进行交流匹配(点亮星星)
2016/08/03 Javascript
AngularJS入门教程之静态模板详解
2016/08/18 Javascript
Vue.js每天必学之指令系统与自定义指令
2016/09/07 Javascript
原生js轮播(仿慕课网)
2017/02/15 Javascript
详解vue-cli项目中的proxyTable跨域问题小结
2018/02/09 Javascript
vue实现2048小游戏功能思路详解
2018/05/09 Javascript
jQuery移动端跑马灯抽奖特效升级版(抽奖概率固定)实现方法
2019/01/18 jQuery
JS温故而知新之变量提升和时间死区
2019/01/27 Javascript
D3.js(v3)+react 实现带坐标与比例尺的柱形图 (V3版本)
2019/05/09 Javascript
基于JS实现前端压缩上传图片的实例代码
2019/05/14 Javascript
Python多进程并发(multiprocessing)用法实例详解
2015/06/02 Python
Django基础之Model操作步骤(介绍)
2017/05/27 Python
python如何修改装饰器中参数
2018/03/20 Python
解决python -m pip install --upgrade pip 升级不成功问题
2020/03/05 Python
pytorch查看通道数 维数 尺寸大小方式
2020/05/26 Python
Python调用OpenCV实现图像平滑代码实例
2020/06/19 Python
HTML5 video循环播放多个视频的方法步骤
2020/08/06 HTML / CSS
Uber Eats台湾:寻找附近提供送餐服务的餐厅
2018/05/07 全球购物
师范毕业生自荐信
2013/10/17 职场文书
灰雀教学反思
2014/04/28 职场文书
公司领导九九重阳节发言稿2014
2014/09/25 职场文书
社区工作者个人总结
2015/02/28 职场文书
《中华上下五千年》读后感3篇
2019/11/29 职场文书
只需要100行Python代码就可以实现的贪吃蛇小游戏
2021/05/27 Python