2012-01-03 50 views
1

我一直在關注從www.w3school.com的javascript教程,並在閱讀中我已經在我的腦海裏有一個問題一個例子,代碼如下:關於字符串的constructor屬性混淆

<html> 
<body> 

<script type="text/javascript"> 

var txt =new String ("Hello World!"); 
document.write(txt.constructor); 

</script> 

</body> 
</html> 

現在,在這個代碼的響應IAM得到的是:

function String() { [native code] } 

但是,根據我的構造函數必須在它有一個參數有點像這樣:

function string(value){} 

任何人都可以請告訴我爲什麼它返回沒有參數的構造函數。

+0

在js參數中是隱含的https://developer.mozilla.org/zh/JavaScript/Reference/Functions_and_function_scope/arguments – clyfe 2012-01-03 09:57:59

回答

2

即使沒有在JavaScript函數定義的參數,我們仍然可以用arguments得到的參數:

function test() { 
    console.log(arguments); 
} 

test(1,3,6); // Output "[1,3,6]" in console. 
0

的其他意見是真實的,但他們不解決您的問題。你沒有看到任何參數的原因,以及爲什麼它說「[native code]」而不是函數的實際內容,那就是window.String是一個本地函數 - 它不是對javascript函數的引用,但是而是一個指示瀏覽器在運行JavaScript時應該執行什麼操作的符號。把它看作更像一個加號而不是一個函數。