gpt4 book ai didi

javascript - JavaScript 中的 eval 如何改变调用上下文?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:36:53 31 4
gpt4 key购买 nike

JavaScript 的动态属性是“eval”改变调用上下文。这是什么意思?一些例子会更好。

最佳答案

eval 确实会在间接调用时更改上下文。并将其更改为全局上下文(所有函数的默认上下文)。

var myObj = { a: 1 }

function someFunc() {
console.log(eval('this.a')) // 1
console.log(eval('this === myObj')) // true

var indirectEval = eval

console.log(indirectEval('this.a')) // undefined
console.log(indirectEval('this === window')) // true
}

void someFunc.call(myObj)

直接 eval 调用不会更改上下文(也不会更改范围)。

参见 “Global eval. What are the options?”了解详情。

关于javascript - JavaScript 中的 eval 如何改变调用上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8694300/

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