“功能”就是功能,这怎么可能
"Function" is function, how is that possible?
在js中,我们有一个名为"Function"的函数。它的实例返回一个函数:
var myfunc = new Function('arg1','arg2','return arg1+arg2');
在该示例中,变量 myfunc 包含一个返回两个给定参数之和的函数。
我的问题是 - 函数怎么可能是一个函数?它不能是自身的实例。对象也是一个函数,函数的一个实例。但是函数是对象的实例,因为函数是对象。
而且我不明白这怎么可能,这是一个无限循环......
谢谢。
Object
、Function
等确实是函数——确切地说是构造函数。
请记住,您创建一个这样的对象:
function MyObject() {
this.foo = 'bar';
}
var my = new MyObject();
alert(my.foo);
顺便说一下,使用new Function(...)
通常是一个坏主意。您的示例会像这样干净得多:
function myfunc(arg1, arg2) { return arg1 + arg2 }
或
var myfunc = function(arg1, arg2) { return arg1 + arg2 };
因此,在生产中使用new Function()
的理由很少(模板引擎是一个很好的用例)。
微不足道的答案是"因为 ECMA-262 是这么说的"。
像函数、对象、数组、日期等对象是内置对象,所以它们不是以通常的方式构造的,它们只是。它们、原型和[[Prototype]]
之间的关系由环境根据 ECMA-262 建立。所以函数继承自它自己的原型(即 Function.prototype === Function[[Prototype]]
),它继承自 Object.prototype。
相关文章:
- 同一项怎么可能在一个实例中未定义,却在另一个实例上定义
- (false==false==true)怎么可能是真的
- 不在443上运行https怎么可能呢
- 这个Javascript变量怎么可能有价值
- Extjs 4.2.1隐藏字段-inputEl.dom怎么可能未定义
- 桌面 HTML + CSS + JS 应用程序?这怎么可能
- “功能”就是功能,这怎么可能
- 开放层:怎么可能.功能覆盖在 3.13v 中替换
- JS:字符串真的是基元类型吗?如果是这样,这怎么可能
- 尝试通过php include放置png图像..这怎么可能
- 我怎么可能完成这种Javascript突出显示技术
- 我传递给函数的变量在该函数中怎么可能是未定义的
- 在JavaScript中:如果Object是一个函数,那么如果一个函数是一个对象的实例,它怎么可能呢
- Javascript:一个带键的数组怎么可能呢
- 函数正在重写变量.这怎么可能
- 怎么可能object==这个,但是object.member!=this.member在Javascript中
- 同时执行2个功能.有可能吗
- 一个有内容的iFrame怎么可能有一个未定义的contentDocument对象
- leaflet.js:setView()完成动画时引发的事件.这怎么可能
- 在chrome控制台的Html是不同的Html在浏览器..它怎么可能