首页 > 其他 > 详细

实现bind函数

时间:2019-01-16 19:41:17      阅读:129      评论:0      收藏:0      [点我收藏+]

 面试中碰到的bind函数,今天来研究下

//1.bind的返回值是函数
var obj={
name:"zhouy"
}
function f() {
console.log(this.name)
}
var run=f.bind(obj)
console.log(run)
run()
// bind 方法不会立即执行,而是返回一个改变了上下文 this 后的函数。而原函数 func 中的 this 并没有被改变,依旧指向全局对象 window。
//2.参数的使用

function func(a, b, c) {
console.log(a, b, c);
}
var func1 = func.bind(null,‘linxin‘);

func(‘A‘, ‘B‘, ‘C‘); // A B C
func1(‘A‘, ‘B‘, ‘C‘); // linxin A B
// console.log(func1(‘A‘, ‘B‘, ‘C‘))
// 原生实现bind函数
if(Function.prototype.bind){
Function.prototype.bind=function () {
var self=this,
context=[].shift.call(arguments),
args=[].slice.call(arguments)
return function () {
self.apply(context,[].concat.call(args,[].slice.call(arguments)))
}
}
}





















实现bind函数

原文:https://www.cnblogs.com/zhouyideboke/p/10278928.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!