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判断客户端是手机还是PC的2个代码
Apr 12 Javascript
EditPlus 正则表达式 实战(3)
Dec 15 Javascript
使用smartupload组件实现jsp+jdbc上传下载文件实例解析
Jan 05 Javascript
vue+axios实现登录拦截的实例代码
May 22 Javascript
详谈AngularJs 控制器、数据绑定、作用域
Jul 09 Javascript
node.js中http模块和url模块的简单介绍
Oct 06 Javascript
微信小程序实现图片压缩功能
Jan 26 Javascript
解决vue select当前value没有更新到vue对象属性的问题
Aug 30 Javascript
vue解决弹出蒙层滑动穿透问题的方法
Sep 22 Javascript
微信小程序云开发使用方法新手初体验
May 16 Javascript
如何通过vscode运行调试javascript代码
Jul 24 Javascript
用vite搭建vue3应用的实现方法
Feb 22 Vue.js
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数据库抽象层 PDO
2011/05/07 PHP
laravel容器延迟加载以及auth扩展详解
2015/03/02 PHP
PHP随机获取未被微信屏蔽的域名(微信域名检测)
2017/03/19 PHP
Laravel 5.4因特殊字段太长导致migrations报错的解决
2017/10/22 PHP
LazyLoad 延迟加载(按需加载)
2010/05/31 Javascript
jquery 卷帘效果实现代码(不同方向)
2013/02/05 Javascript
如何用JavaScript动态呼叫函数(两种方式)
2013/05/03 Javascript
用js读、写、删除Cookie代码续篇
2014/12/03 Javascript
js给网页加上背景音乐及选择音效的方法
2015/03/03 Javascript
JavaScript实现俄罗斯方块游戏过程分析及源码分享
2015/03/23 Javascript
jQuery实现首页图片淡入淡出效果的方法
2015/06/10 Javascript
jquery 仿锚点跳转到页面指定位置的实例
2017/02/14 Javascript
非常实用的vue导航钩子
2017/03/20 Javascript
windows下vue-cli及webpack搭建安装环境
2017/04/25 Javascript
JavaScript箭头(arrow)函数详解
2017/06/04 Javascript
Less 安装及基本用法
2018/05/05 Javascript
vue组件开发之用户无限添加自定义填写表单的方法
2018/08/28 Javascript
解决ng-repeat产生的ng-model中取不到值的问题
2018/10/02 Javascript
vue-cli3+typescript初体验小结
2019/02/28 Javascript
nodejs中各种加密算法的实现详解
2019/07/11 NodeJs
vue 使用饿了么UI仿写teambition的筛选功能
2021/03/01 Vue.js
Python中列表元素转为数字的方法分析
2016/06/14 Python
详解Python多线程Selenium跨浏览器测试
2017/04/01 Python
python实现求解列表中元素的排列和组合问题
2018/03/15 Python
python如何安装下载后的模块
2020/07/03 Python
python 30行代码实现蚂蚁森林自动偷能量
2021/02/08 Python
会计自我鉴定
2013/11/02 职场文书
刘胡兰的英雄事迹材料
2014/02/11 职场文书
《影子》教学反思
2014/02/21 职场文书
交通事故协议书范本
2014/11/18 职场文书
志愿者事迹材料
2014/12/26 职场文书
蓬莱阁导游词
2015/02/04 职场文书
因家庭原因离职的辞职信范文
2015/05/12 职场文书
Python基础知识之变量的详解
2021/04/14 Python
python基础之模块的导入
2021/10/24 Python
js作用域及作用域链工作引擎
2022/07/07 Javascript