JavaScript 中call()、apply()、bind()用法

1.call()方法

在使用一个指定的this值和若干个指定的参数值的前提下调用某个函数或方法.

var name='小王',age=17;
// var _this = this;
var people = {
	name:'小张',
	Age:this.age,
	myFun:function(a,b){
		console.log(this.name+"今年"+this.age+"岁啦,来自"+a+"----"+b);
	}
}

var demo = {
	name:'肖战',
	age:'30'
}
//call()的参数是直接放进去的,第二第三第n个参数全都用逗号分隔,直接放到后面
people.myFun.call(demo,"中国","重庆");//肖战今年30岁啦,来自中国----重庆

2.apply()方法 

调用一个具有给定this值的函数,以及以一个数组(或类数组对象)的形式提供的参数。

var name='小王',age=17;
// var _this = this;
var people = {
		name:'小张',
		Age:this.age,
		myFun:function(a,b){
			console.log(this.name+"今年"+this.age+"岁啦,是"+a+b);
		}
	}
	var demo = {
		name:'肖战',
		age:'30'
	}

	//apply()的所有参数都必须放在一个数组里面传进去
	people.myFun.apply(demo,['我的',"人间理想"]);//肖战今年30岁啦,是我的人间理想

3.bind()方法

创建一个函数,使这个函数不论怎么调用都有同样的this值。

var name='小王',age=17;
// var _this = this;
var people = {
	name:'小张',
	Age:this.age,
	myFun:function(a,b){
		console.log(this.name+"今年"+this.age+"岁啦,"+a+b);
	}
}
var demo = {
	name:'肖战',
	age:'30'
}
	// bind()返回的是函数(带括号),它的参数和call()方法一样
	people.myFun.bind(demo,"重庆野玫瑰","永远光芒万丈!")();//肖战今年30岁啦,重庆野玫瑰永远光芒万丈!

4.call()、apply()、bind()方法的相同点

第一个参数都是 this 的指向对象,三者的参数不限定是 string 类型,允许是各种类型,包括函数 、 object 等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值