箭头函数打印 var 但不打印 let 变量
Arrow Function this prints var but does not print let variable
我有这个代码
var key = "outer value";
let obj = {
key:"obj value",
func:()=> this.key,
}
console.log(obj.func());
但是把var改成let的时候,结果是undefined。请指导。
let key = "outer value";
let obj = {
key:"obj value",
func:()=> key,
}
console.log(obj.func()); //--> Outer Value
var key = "outer value";
let obj = {
key:"obj value",
func:()=> key,
}
console.log(obj.func()); //--> Outer Value
即使不使用这个关键字,答案也是一样的
var key = "outer value";
let obj = {
key:"obj value",
func:()=> key,
}
console.log(obj.func());
箭头函数没有 its on this,它总是使用父 this
您的代码有效,因为密钥是全局范围的(this)
let key = "outer value";
let obj = {
key:"obj value",
func:()=> key,
}
console.log(obj.func());
这行不通,因为键是局部作用域,不在其中
function test() {
var key = "outer value";
let obj = {
key: "obj value",
func: () => this.key,
};
console.log(obj.func()); // undefined
}
test();
这会起作用
function test() {
this.key = "outer value";
let obj = {
key: "obj value",
func: () => this.key,
};
console.log(obj.func()); // outer value
}
test();
我有这个代码
var key = "outer value";
let obj = {
key:"obj value",
func:()=> this.key,
}
console.log(obj.func());
但是把var改成let的时候,结果是undefined。请指导。
let key = "outer value";
let obj = {
key:"obj value",
func:()=> key,
}
console.log(obj.func()); //--> Outer Value
var key = "outer value";
let obj = {
key:"obj value",
func:()=> key,
}
console.log(obj.func()); //--> Outer Value
即使不使用这个关键字,答案也是一样的
var key = "outer value";
let obj = {
key:"obj value",
func:()=> key,
}
console.log(obj.func());
箭头函数没有 its on this,它总是使用父 this
您的代码有效,因为密钥是全局范围的(this)
let key = "outer value";
let obj = {
key:"obj value",
func:()=> key,
}
console.log(obj.func());
这行不通,因为键是局部作用域,不在其中
function test() {
var key = "outer value";
let obj = {
key: "obj value",
func: () => this.key,
};
console.log(obj.func()); // undefined
}
test();
这会起作用
function test() {
this.key = "outer value";
let obj = {
key: "obj value",
func: () => this.key,
};
console.log(obj.func()); // outer value
}
test();