gpt4 book ai didi

javascript - 如何将对象属性添加到 rhino javascript 中的全局对象

转载 作者:数据小太阳 更新时间:2023-10-29 04:24:34 24 4
gpt4 key购买 nike

我想将对象中的一些属性添加到全局命名空间中。在浏览器上的 javascript 中,我可以像这样将它添加到 window 对象中:

var myObject = {
foo : function() {
alert("hi");
}
// and many more properties
};

for (property in myObject) {
window[property] = myObject[property];
}

// now I can just call foo()
foo();

但是由于 rhino 没有全局窗口对象,我不能那样做。是否有等效的对象或其他方法来实现此目的?

最佳答案

我在 NCZOnline 找到了一个相当出色的解决方案:

function getGlobal(){
return (function(){
return this;
}).call(null);
}

The key to this function is that the this object always points to the global object anytime you are using call() or apply() and pass in null as the first argument. Since a null scope is not valid, the interpreter inserts the global object. The function uses an inner function to assure that the scope is always correct.

调用方式:

var glob = getGlobal();

glob 将在 Rhino 中返回 [object global]

关于javascript - 如何将对象属性添加到 rhino javascript 中的全局对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1162998/

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