簡體   English   中英

JavaScript中的全局對象名稱

[英]Global Object name in Javascript

我正在使用的ERP具有允許我編寫Javascript以控制/調整事件流的功能。 在我的情況下,沒有“窗口”全局對象。

我需要在全局范圍內使用eval(),但缺少全局對象的名稱。 有辦法找出答案嗎?

我需要在全局范圍內使用eval()...

如果從字面上看,您需要在全局范圍內評估某些內容,則可以使用間接評估:

(0, eval)("your code here");

它看起來很奇怪,但是卻使eval工作在全局范圍而不是局部范圍內進行。

 var n; // A global `n` function direct() { var n; eval("n = 'a';"); console.log("Direct:"); console.log(" local n = " + n); console.log(" global n = " + window.n); } function indirect() { var n; (0, eval)("n = 'b';"); console.log("Indirect:"); console.log(" local n = " + n); console.log(" global n = " + window.n); } direct(); indirect(); 

...而我缺少全局對象的名稱。 有辦法找出答案嗎?

如果你正在運行在寬松模式下你的代碼,你可以通過調用一個函數,這將運行可以訪問全局對象this引用全局對象。 所以:

var global = (function() { return this; })();

...為您提供了一個名為global的變量,該變量引用了全局對象。 它在嚴格模式下不起作用,因為在嚴格模式下, this函數中的此函數是undefined

它也完全有可能是你的代碼被稱為與this 已經引用全局對象,所以你可能檢查第一。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM