打开chrome开发工具并选中“功能”,
结果显示为
ƒ Function() { [native code] }
我无法真正理解这个结果,因为其他文章都提到了
function是定义函数的语言关键字
Function是内置的原型对象,代表所有对象 功能。而且Function可以用作构造器,也可以使用new 关键字
ƒ Function() { [native code] }
上面的似乎是如果Function中包含Function。 (反之亦然)
有人可以帮助我了解此问题吗?
答案 0 :(得分:1)
Function是代表所有功能的内置原型对象。而且Function也可以使用new关键字作为构造函数
实体“功能”本身是可调用的。因此,编写Function()
是有效的javascript语句。
这意味着,在开发者控制台中输入字符串Function
时,浏览器将正确打印ƒ Function() { [native code] }
。
例如,输入Math.random
也会发生同样的情况。浏览器发现“随机”是一个函数,并显示ƒ random() { [native code] }
。
但是,如果您输入字符串function
(小写),则它不能被浏览器解释,因为它只是一个关键字,而不是实际的对象/实体。在chrome中,开发者控制台不允许您执行该操作,而是等待更多输入。如果尝试输入[
,也会发生同样的情况。提交function;
时,您将正确地收到一个语法错误。
请独立注意,开发人员控制台的行为通常与实际的Javascript执行略有不同,尤其是在极端情况下或在处理语法上不正确的情况时。在浏览器中也很少有关于此的错误报告,但是由于它们不属于任何标准用例,因此,它们被认为是次要的。