[英]How do I Lock a javascript function to the local scope ? I want to prevent it from using global variables
有沒有辦法阻止函數使用全局變量,如document
, window
, navigator
和其他聲明的全局函數?
編輯1:如果我可以選擇受限制的全局對象,那將是很好的,因為我想允許該函數用作示例Math對象及其函數...
有沒有辦法阻止函數使用全局變量,如文檔,窗口,導航器和其他聲明的全局函數?
不,除非......
這項任務唯一可行的方法是,如果可以改變函數的詞法范圍 - 也就是說,以某種方式修改源代碼 ,例如如下所示包裝它。
想像:
;(function () {
var window = "Hello"
// original content
function foo () {
alert(window)
}
foo()
})()
這種方法經常在庫中用於創建私有命名空間,但在這些情況下,原始源也是可用的並且在設計時考慮到了這一點。 我之前使用過這個document
來改變 jQuery的本地版本。
雖然with
起初看起來有前途的,重要的是要意識到這僅僅是一個詞匯結構以及和不引入動態變量。
快樂的編碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.