this
- 函数在执行时,JS解析器每次都会传递进一个隐含的参数,即this
- this会指向一个对象,所指向的对象会根据函数调用方式的不同而不同
(1)以函数形式调用时,this指向的是window
(2)以方法的形式调用时,this指向的是调用方法的对象
...... - 通过this可以在方法中引用调用方法的对象
function fn(){
console.log(this === window); // true
console.log("fn打印", this); // fn打印,window
}
fn();
function fn2(){
console.log("fn2打印", this);
}
const obj = {name:"孙悟空"};
obj.test = fn2;
const obj2 = {name:"猪八戒"};
obj.test(); // this为obj
obj2.test(); // this为obj2
const obj3 = {
name:"沙和尚",
sayHello: function(){
console.log(this.name);
}
};
const obj4 = {
name:"唐僧",
sayHello: function(){
console.log(this.name);
}
};
obj3.sayHello();
obj4.sayHello();
箭头函数的this:
箭头函数没有自己的this,它的this由外层作用域决定,箭头函数的this和它的调用方式无关
function fn(){
console.log("fn -->", this);
}
const fn2 = () => {
console.log("fn2 -->", this);
};
const obj = {
name:"孙悟空",
fn,
fn2,
sayHello(){
console.log(this);
}
};
obj.fn(); // this -->, obj
obj.fn2(); // this -->, window
标签:fn2,console,函数,JavaScript,笔记,name,obj,fn,log
From: https://www.cnblogs.com/zibocoder/p/17055176.html