关于this可能是刚刚学习JavaScript学生党的一大问题
var r=1;
function user(){
console.log(this.r);//在函数调用里默认为window
}
var r={
s:2,
q:function(){
console.log(this.s)
},
r:function(){
(function(){
console.log(this.sa)//作为匿名函数调用的时候在一般模式下为window,严格模式下为undefined
})()
}}
}
w.q();//当作为对象属性调用this指向对象本身
这是this指向的问题,涉及到改变this指向的问题也就随即而来,
call,apply这两个类似
call(this,指定明确参数一个或一个以上)
apply(this,数组或者argumens)
arguments 是一个对应于传递给函数的参数的类数组对象
bind用法如下
var f=“hello”
var r={f:“hello world”}
function t(){
console.log(this.f)
}
var s=t.bind®;改变了原来指向window的方向
s()//输出了 hello word
涉及到了继承,通过call,apply指向改变,可以获取属性与方法
比如 function user(){
this.name=“123”
}
function pass(){
user.apply(this)//或者user.call()
}
var q=new pass();
console.log(q);//Object:{name:“123”}