假设我们在全局上下文中声明了一个变量,如下所示:
var someVariable = "someValue";
我们总是可以像 window['someVariable']
一样访问它的值,因为它在全局执行上下文中。
但是,如果它在某个函数内部而不是在全局执行上下文中,我们如何才能以相同的方式访问它的值呢?例如
function someFunction(someParameter) {
var someVariable = "some value";
// some code
}
我想做一些像 someFucntionContext['someParameter']
或 someFucntionContext['someVariable']
来访问 的执行上下文中那些变量的值code>someFucntion
就像我刚刚对在全局上下文中声明的变量所做的那样。
最佳答案
如果不返回对象或实例化函数并访问属性,这是不可能的。
全局变量自动成为 window
对象的属性,前提是您使用 var
而不是 let
或 const
。例如根级函数自动成为 window
对象的方法。但是函数的行为不像原始对象。你需要做类似的事情
function Favorites(){
return{
food: "burrito",
color: "gray"
}
}
var fav = Favorites();
var favfood = fav.food; //fav['food']
或
function Favorites(){
this.food = "burrito";
this.color = "gray";
}
var fav = new Favorites();
var favfood = fav.food; //fav['food']
像这样
var favfood = window.fav.food;
var favcolor = window['fav']['color']
关于javascript - 我们如何获得函数的执行上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51979318/