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 相关文章推荐
不用MOUSEMOVE也能滑动啊
May 23 Javascript
jQuery中:last选择器用法实例
Dec 30 Javascript
jQuery中:has选择器用法实例
Dec 30 Javascript
jQuery实现DIV层收缩展开的方法
Feb 27 Javascript
JavaScript中的setUTCDate()方法使用详解
Jun 11 Javascript
jQuery.extend 函数及用法详细
Sep 06 Javascript
快速掌握jQuery插件WebUploader文件上传
Nov 07 Javascript
老生常谈javascript中逻辑运算符&&和||的返回值问题
Apr 13 Javascript
基于VUE移动音乐WEBAPP跨域请求失败的解决方法
Jan 16 Javascript
详解Vue中组件传值的多重实现方式
Aug 16 Javascript
解决layui的使用以及针对select、radio等表单组件不显示的问题
Sep 05 Javascript
Postman内建变量常用方法实例解析
Jul 28 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
ThinkPHP实现将本地文件打包成zip下载
2014/06/26 PHP
php实现简单的MVC框架实例
2015/09/23 PHP
php+ajax无刷新上传图片实例代码
2015/11/17 PHP
PHP+Ajax实现的检测用户名功能简单示例
2019/02/12 PHP
使用laravel的migrate创建数据表的方法
2019/09/30 PHP
解决Laravel自定义类引入和命名空间的问题
2019/10/15 PHP
[原创]保存的js无法执行的解决办法
2007/02/25 Javascript
Ext JS添加子组件的误区探讨
2013/06/28 Javascript
解决window.opener=null;window.close(),只支持IE6不支持IE7,IE8的问题
2014/01/14 Javascript
js操作模态窗口及父子窗口间相互传值示例
2014/06/09 Javascript
jQuery实现淡入淡出二级下拉导航菜单的方法
2015/08/28 Javascript
JS实现可点击展开与关闭的左侧广告代码
2015/09/02 Javascript
基于jquery实现省市联动效果
2015/11/23 Javascript
JS清除字符串中重复值的实现方法
2016/08/03 Javascript
jQuery鼠标事件总结
2016/10/13 Javascript
vue.js 表格分页ajax 异步加载数据
2016/10/18 Javascript
js实现QQ面板拖拽效果(慕课网DOM事件探秘)(全)
2017/09/19 Javascript
javaScript字符串工具类StringUtils详解
2017/12/08 Javascript
实例解析Vue.js下载方式及基本概念
2018/05/11 Javascript
js实现简单的倒计时
2021/01/28 Javascript
Python3 正在毁灭 Python的原因分析
2014/11/28 Python
python引入导入自定义模块和外部文件的实例
2017/07/24 Python
解决Pycharm无法import自己安装的第三方module问题
2018/05/18 Python
Python开发之Nginx+uWSGI+virtualenv多项目部署教程
2019/05/13 Python
用OpenCV将视频分解成单帧图片,图片合成视频示例
2019/12/10 Python
Python 抓取数据存储到Redis中的操作
2020/07/16 Python
班组长岗位职责范本
2014/01/05 职场文书
报社实习生自荐信
2014/01/24 职场文书
计算机求职自荐信范文
2014/04/19 职场文书
小学三年级学生评语
2014/04/22 职场文书
企业三严三实学习心得体会
2014/10/13 职场文书
2015年城管个人工作总结
2015/05/15 职场文书
2015年店长个人工作总结
2015/10/23 职场文书
Python max函数中key的用法及原理解析
2021/06/26 Python
springboot项目以jar包运行的操作方法
2021/06/30 Java/Android
详解Python内置模块Collections
2022/03/22 Python