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 相关文章推荐
node.js中的buffer.Buffer.isEncoding方法使用说明
Dec 14 Javascript
基于jQuery.Hz2Py.js插件实现的汉字转拼音特效
May 07 Javascript
JS实现表单中checkbox对勾选中增加边框显示效果
Aug 21 Javascript
jQuery实现选中弹出窗口选择框内容后赋值给文本框的方法
Nov 23 Javascript
jQuery实现带分组数据的Table表头排序实例分析
Nov 24 Javascript
在页面中输出当前客户端时间javascript实例代码
Mar 02 Javascript
js中最容易被忽视的事件问题大总结
May 15 Javascript
AngularJS使用指令增强标准表单元素功能
Jul 01 Javascript
jQuery生成假加载动画效果
Dec 01 Javascript
bootstarp modal框居中显示的实现代码
Feb 18 Javascript
Vue加载json文件的方法简单示例
Jan 28 Javascript
Vue单页面应用中实现Markdown渲染
Feb 14 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中文转拼音的实现代码
2014/02/11 PHP
PHP实现字符串大小写转函数的功能实例
2019/02/06 PHP
PHP Beanstalkd消息队列的安装与使用方法实例详解
2020/02/21 PHP
php下的原生ajax请求用法实例分析
2020/02/28 PHP
DOM精简教程
2006/10/03 Javascript
document.all与WEB标准
2020/05/13 Javascript
IE DOM实现存在的部分问题及解决方法
2009/07/25 Javascript
js textarea自动增高并隐藏滚动条
2009/12/16 Javascript
jQuery与ExtJS之选择实例分析
2010/08/19 Javascript
JavaScript学习笔记之获取当前目录的实现代码
2010/12/14 Javascript
简短几句 通俗解释javascript的闭包
2011/01/17 Javascript
js自定义事件及事件交互原理概述(二)
2013/02/01 Javascript
Jquery创建层显示标题和内容且随鼠标移动而移动
2014/01/26 Javascript
JavaScript中如何通过arguments对象实现对象的重载
2014/05/12 Javascript
nodejs简单实现中英文翻译
2015/05/04 NodeJs
理解Javascript的call、apply
2015/12/16 Javascript
jQuery实现的简单对话框拖动功能示例
2018/06/05 jQuery
QQ跳转支付宝并自动领红包脚本(最新)
2018/06/22 Javascript
js实现旋转木马轮播图效果
2020/01/10 Javascript
Python自动连接ssh的方法
2015/03/07 Python
Python实现购物评论文本情感分析操作【基于中文文本挖掘库snownlp】
2018/08/07 Python
Python3匿名函数lambda介绍与使用示例
2019/05/18 Python
什么是python的id函数
2020/06/11 Python
雅诗兰黛澳大利亚官网:Estée Lauder澳大利亚
2019/05/31 全球购物
C#面试题问题集
2016/04/02 面试题
Ruby如何实现动态方法调用
2012/11/18 面试题
大型会议接待方案
2014/03/01 职场文书
技术总监管理岗位职责
2014/03/09 职场文书
无偿献血倡议书
2014/04/14 职场文书
金秋助学感谢信
2015/01/21 职场文书
经营目标责任书
2015/05/08 职场文书
公司费用报销管理制度
2015/08/04 职场文书
mysql分表之后如何平滑上线详解
2021/11/01 MySQL
剖析后OpLog订阅MongoDB的数据变更就没那么难了
2022/02/24 MongoDB
Go 中的空白标识符下划线
2022/03/25 Golang
Python 避免字典和元组的多重嵌套问题
2022/07/15 Python