js 在函数中遇到的this指向问题

Posted 梦蝶庄周

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js 在函数中遇到的this指向问题相关的知识,希望对你有一定的参考价值。

//自执行函数的调用三种
/*
!function(){
	alert(123)
}();
(function(){
	alert(345)
}())
(function(){
	Array.prototype.push.call(arguments,3);
	console.log(arguments)//输出 [1,2,3]
})(1,2)
*/
var obj = {
	a:1,
	b:function(){
		console.log(this);
	}
}
obj.fn = function(){
	console.log(this);//===obj
}
obj.fn();
obj.b();//this==obj
//var c = obj.b();//this==obj
//c();//this==window;

Function.prototype.bind = function(context){
	var self = this;
	console.log(‘测试bind‘)
	console.log(this); // function(){var c = 1}
	return function(){
		return  self.apply(context,arguments)

	}
}
var o = {
	name:‘my name id huhu‘
}
var func = function(){
	alert(this.name)
}.bind(o);
console.log(func)  //function(){return self.apply(context,argument)}
func();  

  

以上是关于js 在函数中遇到的this指向问题的主要内容,如果未能解决你的问题,请参考以下文章

关于 js 中 this 指向的问题

this的指向

setTimeout中所执行函数中的this,永远指向window

Vue中匿名函数和箭头函数的this

关于JS中this对象指向问题总结

js中this指向问题