<script>
function obj1(){}
alert(obj1.name);
var obj2 = function(){}
obj2.name = 'obj2';
alert(obj2.name=='');
</script>
我已經在Chrome測試代碼,FF,野生動物園函數對象的名稱屬性是什麼?
但IE9沒有這個屬性。
問題是我可以在哪裏閱讀文檔以找到所有這種情況?
<script>
function obj1(){}
alert(obj1.name);
var obj2 = function(){}
obj2.name = 'obj2';
alert(obj2.name=='');
</script>
我已經在Chrome測試代碼,FF,野生動物園函數對象的名稱屬性是什麼?
但IE9沒有這個屬性。
問題是我可以在哪裏閱讀文檔以找到所有這種情況?
Mozilla的文檔這樣說:
name
Non-standard
The name of the function.
因此,它是由某些瀏覽器中實現非標準功能。由於沒有標準來規定它應該如何工作,所以瀏覽器之間的實現可能會有所不同。
裁判:https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function
的Microsoft和Mozilla單證相當齊全,你會發現它們中的任何標準功能。如果您發現這樣的非標準屬性,通常只會爲支持它的瀏覽器記錄。
JavaScript語言的權威資源當然是EcmaScript ECMA-262 standard的,但它是一個複雜多了比對實現的文檔閱讀。
對於DOM(HTML,CSS,Javscript接口)中的功能,指定標準的是W3C organisation。
你可以在這裏找到Microsoft規格:
http://msdn.microsoft.com/en-us/library/x844tc74%28v=vs.94%29.aspx
不過說實在的,這是不規範的,和MS選擇跟隨規範這個時候。
使用語法new Function(...)或只是Function(...)創建的函數的名稱屬性在Firefox和Safari上設置爲「anonymous」,或者在Chrome和Opera上設置爲空字符串。此屬性在Internet Explorer上不受支持。
來源:https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/Name