var bar=2021;
function foo(){
var bar=1998;
console.log(this.bar);
}
foo();//2021
"use strict"
var bar=2021;
function foo(){
var bar=1998;
console.log(this.bar);
}
foo();//Uncaught TypeError: Cannot read property ‘bar‘ of undefined
var foo=1998;
function bar(){
console.log(this.foo);
}
var obj={
foo:2021,
bar:bar
}
obj.bar();//2021
var foo=1998;
function bar(){
console.log(this.foo);
}
var obj={
foo:2021,
bar:bar
}
var baz=obj.bar;
baz();//1998
var foo=1998;
function bar(){
console.log(this.foo);
}
var obj={
foo:2021,
bar:bar
}
setTimeout(obj.bar,0)//1998
//setInterval和setTimeout中如果出现this,那么这个this指向的是window对象
var foo="我是全局 foo";
function bar(){
console.log(this.foo);
}
var obj1={
foo:"我是obj1 foo",
bar:bar
}
var obj2={
foo:"我是obj2 foo",
}
var obj3={
foo:"我是obj3 foo"
}
obj1.bar.apply(obj2)//我是obj2 foo
obj1.bar.call(obj3)//我是obj3 foo
var foo="我是全局 foo";
function bar(foo){
this.foo=foo;
}
var baz=new bar("新传的bar");
console.log(baz.foo);//新传的bar
原文:https://www.cnblogs.com/czmwww/p/14606882.html