一 . 方法调用,this指向调用它的方法的对象
var age = 38;
var obj = {
age: 18,
getAge: function() {
console.log(this.age);
}
};
obj.getAge();
二.函数调用,里面的this指向的是window
var age = 38;
var obj = {
age: 18,
getAge: function() {
var fn = function() {
console.log(this.age);
};
fn();
}
};
obj.getAge();
三.构造函数调用,this指向new出来的对象
var age = 38;
var obj = {
age: 18
};
var getAge = function() {
console.log(this.age);
};
obj.get = getAge;
obj.get();
四.上下文调用模式,this指向谁?指向的是传入的对象
call和apply
var arr = [1,3,4,6,7,555,333,13]
console.log(Math.max(1,2,3,4,5))
console.log(Math.max.apply(arr,arr)) //this指向arr
console.log(Math.max.call(arr,1,3,4,6,7,555,333,13))
//伪数组 是一个对象: 访问方式:和数组一样,不能使用数组的方法
function sum(){
console.log(arguments[2]);
console.log(Array.prototype.join.call(arguments,"-"))
arguments.join("-")
}
sum("aa","bb","cc")
网友评论