Function的拓展:bind(),call(),apply()

1. Function.prototype.bind(obj)
        作用: 将函数内的this绑定为obj,并将函数返回

var obj = {username: 'Yoona'}
	function foo(data){
		console.log(this,data)

	}
	var bar = foo.bind(obj)
	console.log(bar);// 输出函数体
	bar() // this指向obj

2. 区别bind(),call(),apply()

        * 都能指定函数中的this
        * call()/apply()是立即调用函数
        * bind()是将函数返回

// 传入参数的形式
	foo.call(obj,33) // 可以直接调用函数
	foo.apply(obj,[33])// 必须以数组的形式传参 直接调用函数
    foo.bind(obj,33)();// bind 传参数的方式同call() 返回函数体 需要自己调用
// this都是指向obj

猜你喜欢

转载自blog.csdn.net/Hanhanyoona/article/details/83932145