网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

JavaScript中的call,apply,bind的使用

一、call

call(thisObj,arg1,arg2,arg...)
定义:调用一个对象的方法,以另一个对象替换当前对象。
说明:call方法可以用来代替另一个对象调用一个方法。
call方法可以将一个函数对象的上下文改变为由thisObj指定的新对象。
thisObj的取值有以下几种情况:
(1)不传,或者为null,undefined时,函数中的this指向window对象;
(2)传递另一个函数的函数名,函数中的this指向这个函数的引用;
(3)传递基础类型数据时,函数中的this指向其对应的包装对象;
(4)传递一个对象时,函数中的this指向这个对象。

专业领域包括成都网站制作、成都做网站、电子商务商城网站建设、微信营销、系统平台开发, 与其他网站设计及系统开发公司不同,创新互联公司的整合解决方案结合了帮做网络品牌建设经验和互联网整合营销的理念,并将策略和执行紧密结合,为客户提供全网互联网整合方案。

JavaScript中的call,apply,bind的使用

例1--> 调用Math的max方法实现对一串数字的排序:
JavaScript中的call,apply,bind的使用

例2--> 调用fn1的方法打印fn2中的信息
JavaScript中的call,apply,bind的使用

例3--> 实现继承:
JavaScript中的call,apply,bind的使用
Fn1.call(this)的意思是使用Fn1对象替代this对象,则fn2就可以调用Fn1的所有属性和方法。

二、apply

语法:apply(thisObj,argArray)
定义:应用某一对象的一个方法,用另一个对象替换当前对象。
说明: 如果 argArray 不是一个有效的数组或者不是 arguments 对象,那么将导致一个 TypeError。

如果没有提供 argArray 和 thisObj 任何一个参数,那么 Global 对象将被用作 thisObj, 并且无法被传递任何参数。

功能同call,传参方式不一样。举例参考call,此处略。

三、bind

bind方法创建一个新的函数,MDN上这样介绍:
bind()方法创建一个新的函数(称为绑定函数),当函数被调用时,其this关键字被设置为提供的值,在调用新函数时,提供一个给定的参数序列。
function.bind(thisObj,arg1,arg2,arg3):参数thisObj表示:当绑定的函数被调用时,this的指向为该参数。当使用new操作符调用绑定函数时,参数thisObj无效。参数arg1,arg2,...表示:当绑定函数被调用时,这些参数将置于实参之前传递给被绑定的方法。

this.name="jack"
var demo={
name:"lily",
getName:function(){return this.name}
}

var name1= demo.getName;
console.log(name1())

var name2 = name1.bind(demo)
console.log(name2())

结果:
jack
lily
console.log(name1()) //输出jack,这里的this指向全局对象
console.log(name2()) // 输出lily, 这里的this指向name对象

给函数预设初始值:
var add = function(x,y){return x+y}
var add_curr = add.bind(null,2)
add_curr(3)
结果: 5


新闻标题:JavaScript中的call,apply,bind的使用
分享URL:http://bjjierui.cn/article/ghopjd.html

其他资讯