关于字符串的构造函数属性的混淆

时间:2012-01-03 09:55:05

标签: javascript

我一直在关注www.w3school.com上的javascript教程,在阅读其中一个例子时,我脑子里有一个问题,代码如下:

<html>
<body>

<script type="text/javascript">

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

 </script>

</body>
</html>

现在,我对此代码的回应是:

function String() { [native code] } 

但是,根据我的说法,构造函数必须有一个参数,如下所示:

function string(value){}

任何人都可以告诉我为什么它返回没有参数的构造函数。

2 个答案:

答案 0 :(得分:2)

即使没有在JavaScript函数中定义参数,我们仍然可以使用arguments获取参数:

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

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

答案 1 :(得分:0)

其他评论是正确的,但它们并未解决您的问题。你没有看到任何参数的原因,以及它为什么说“[本地代码]”而不是函数的实际内容,是window.String是一个本机函数 - 它不是对javascript函数的引用,而是而是一个符号,指示浏览器在运行您的javascript时要做什么。可以认为它更像是加号而不是函数。

相关问题