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 分栏效果实现代码
Aug 29 Javascript
Javascript继承机制的设计思想分享
Aug 28 Javascript
jQuery去掉字符串起始和结尾的空格(多种方法实现)
Apr 01 Javascript
JS延迟加载加快页面打开速度示例代码
Dec 30 Javascript
动态加载css方法实现和深入解析
Jan 18 Javascript
Angularjs 实现动态添加控件功能
May 25 Javascript
vue组件学习教程
Sep 09 Javascript
基于casperjs和resemble.js实现一个像素对比服务详解
Jan 10 Javascript
JS实现匀速与减速缓慢运动的动画效果封装示例
Aug 27 Javascript
angularjs的单选框+ng-repeat的实现方法
Sep 12 Javascript
微信小程序转化为uni-app项目的方法示例
May 22 Javascript
Vue项目打包编译优化方案
Sep 16 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
php桌面中心(三) 修改数据库
2007/03/11 PHP
php Undefined index的问题
2009/06/01 PHP
php二维码生成
2015/10/19 PHP
Yii数据读取与跳转参数传递用法实例分析
2016/07/12 PHP
apache php mysql开发环境安装教程
2016/07/28 PHP
Docker配置PHP开发环境教程
2016/12/21 PHP
PHP自定义函数实现数组比较功能示例
2017/10/19 PHP
phpMyAdmin通过密码漏洞留后门文件
2018/11/20 PHP
Laravel-admin之修改操作日志的方法
2019/09/30 PHP
jquery实现页面图片等比例放大缩小功能
2014/02/12 Javascript
IE8下Jquery获取select选中的值post到后台报错问题
2014/07/02 Javascript
jquery实现勾选复选框触发事件给input赋值
2015/02/01 Javascript
JS实现往下不断流动网页背景的方法
2015/02/27 Javascript
JavaScript、tab切换完整版(自动切换、鼠标移入停止、移开运行)
2016/01/05 Javascript
轻松掌握JavaScript策略模式
2016/08/25 Javascript
JS正则表达式验证密码格式的集中情况总结
2017/02/23 Javascript
JavaScript原生数组Array常用方法
2017/04/06 Javascript
微信小程序中实现手指缩放图片的示例代码
2018/03/13 Javascript
Vue.js路由实现选项卡简单实例
2019/07/24 Javascript
Vue 技巧之控制父类的 slot
2020/02/24 Javascript
解决js中的setInterval清空定时器不管用问题
2020/11/17 Javascript
使用Python编写提取日志中的中文的脚本的方法
2015/04/30 Python
Python元字符的用法实例解析
2018/01/17 Python
python深度优先搜索和广度优先搜索
2018/02/07 Python
python随机生成库faker库api实例详解
2019/11/28 Python
消防安全汇报材料
2014/02/08 职场文书
中层干部竞聘演讲稿
2014/05/15 职场文书
2014预备党员批评与自我批评思想汇报
2014/09/20 职场文书
员工工作及收入证明
2014/10/28 职场文书
2014年企业工会工作总结
2014/11/12 职场文书
2014年社区民政工作总结
2014/12/02 职场文书
库房管理员岗位职责
2015/02/12 职场文书
校本研修个人总结
2015/02/28 职场文书
学校2015年纠风工作总结
2015/05/15 职场文书
三八节活动简报
2015/07/20 职场文书
python中 .npy文件的读写操作实例
2022/04/14 Python