gpt4 book ai didi

Javascript 调用方法没有相同的上下文

转载 作者:行者123 更新时间:2023-11-28 16:50:37 26 4
gpt4 key购买 nike

尝试学习 JavaScript call 方法:

我写了这两个代码示例:

//Example 1 start

function myName(){
console.log(this.name)//Roger
console.log(roger.name)//Roger
}

let roger = {
name: 'Roger',
}
myName.call(roger)

//Example 1 end


//Example 2 start

function yourName(){
console.log(this.name);//Charlie
console.log(charlie.name);//ReferenceError: charlie is not defined
}

function hisName(){
let charlie = {
name: 'Charlie'
}
yourName.call(charlie);
}
hisName();

//Example 2 end

我有点困惑为什么在示例 2 中,yourName 函数的 charlie.name 上下文与 roger.name 不同code> 在 myName 函数中执行。 this 上下文似乎适用于这两个示例。谢谢

最佳答案

符号“charlie”不在 yourName() 函数的范围内。范围是一个静态的东西; “charlie”变量是在不同的函数中声明的,因此它在 yourName() 中完全不可见。

关于Javascript 调用方法没有相同的上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60011838/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com