簡體   English   中英

JavaScript可以引用自身嗎?

[英]Can JavaScript refer to itself?

一段JavaScript代碼是否可以引用自身? 也就是說,我可以以編程方式構建一個變量,以使其值成為聲明它的JavaScript文件的原始文本內容嗎?

嘗試,

(function foo() { var f = foo.toString(); return f; })()

f是您所描述的變量。 這也以字符串形式返回本身,只是出於很好的考慮。

(function () { return arguments.callee.toString(); })()

幾乎與所選答案相同,沒有字符串的變量存儲或函數名稱。 兩者都沒有真正提及自己。 您無法執行$(this).closest('script')來引用DOM中的JS文件。


您可以執行以下操作

var w      =  window;
w.stored   =  [];
w.scripts  =  document.getElementsByTagName('script');
w.stored.push(w.scripts[ w.scripts.length - 1 ]);

如前所述,這是因為DOM會順序加載腳本。 您可以參考執行w.stored[0]所有腳本。 使用jQuery,您可以執行$(w.stored[0]).text()

JSFiddle演示

一段JavaScript代碼是否可以引用自身?

函數可以使用arguments.callee (ECMA-262 10.6)來引用自身。 我認為它在嚴格模式下不可用,但這不應該成為太大的問題。 您可以調用函數的toString方法來獲取函數的與implementation-dependent representation of the function通常是與創建implementation-dependent representation of the function的源代碼等效的字符串,但可能並非如此。

也就是說,我可以以編程方式構建一個變量,以使其值成為聲明它的JavaScript文件的原始文本內容嗎?

從一般意義上講,例如,您不能:

var x = 'x';
getVaue(x); // var x = 'x';

如果那是你的意思。

暫無
暫無

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

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