javascript 函数绑定问题
本文介绍了javascript 函数绑定问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
废话不多说,上代码:
Function.prototype.bind = function(context) {
var self = this;
return function() {
self.apply(context, arguments);
};
};
var Animal = {
name: 'Cat',
getName: function() {
//console.log(this.name);
return this.name;
}
};
var Animal2 = {
name: 'Dog'
};
var dog = Animal.getName.bind(Animal2)()
console.log(dog) //undefined
问题来了,为啥输出不是Dog而是undefined。
但是 如果把getName中的return 替换成 console.log(this.name),便可输出Dog。
求解释
解决方案
此处使用闭包返回一个函数,要想有输出需要返回的这个函数要return得到的结果。
这篇关于javascript 函数绑定问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文