JS中的this 指向问题
代码解释:
<!-- <button>点击</button> -->
<script>
var Btn = document.getElementsByTagName("button")[0];
Btn.onclick = function(){
console.log(this); //button
fun ()
}
function fun(){
console.log(this); //window可以理解全局的对象
}
function per(){
console.log(this); // p1
this.show();
}
per.prototype.show = function(){
console.log(this); //p1
}
var p1 = new per();
//定时器里的this
setTimeout(function(){
console.log(this); // window
},1000)
//this指向的改变 :
var a = {
x : 1
}
var b = function(y,z){
var x = 10;
console.log(this.x + y + z)
}
b.call(a,3,4); //使用call()方法之后 将b的this指向给a,并且参数以逗号的形式传入
b.apply(a,[3,4]); //使用apply()的方法, 将的this指向给a 参数以数字组的形式传入
b.bind(a,3,4)(); //闭包的方式 将b的this 指向a
</script>