搜索

首页  >  问答  >  正文

javascript - JS中的Function()函数对象

Object()构造函数可以看做是:var Object=new Function();
Array()构造函数可以看做是:var Array=new Function();
.....那么:
Function()构造函数可以看做是:var Function=new Function()?
自己创建了自己?
还有类似的其他的一些原生对象,Object.prototype,作为原型链的终极原型对象,他是怎么被创造出来的?难道也是new Object()创造出来的?但Object.prototype不应该是JS原生系统里第一个对象吗?
感觉已经无法理解JS的基于原型思想了,还请大神指点.......

欧阳克欧阳克2728 天前810

全部回复(3)我来回复

  • 学习ing

    学习ing2017-06-12 09:31:33

    其实不是鸡生蛋蛋生鸡的问题,所有的对象其实都是function,包括function自己;先说原型,原型基于构造函数和__proto__,并且这两个包含于prototype,并且这三个一起组成了一个function;原型链基于__proto__的指向,原型链是自底向上,就近原则,查找想要的属性,形成原型链;所以js是模拟的语言,这也是它和其他语言的本质区别!

    回复
    0
  • 我想大声告诉你

    我想大声告诉你2017-06-12 09:31:33

    1. 可以通过new来产生对象(函数)跟所有的对象(函数)都需要通过new来产生是不一样的。

    2. Function,Object等可以认为是js实现的过程中提供的,我的理解是浏览器为了实现原型链,在提供这些函数的时候按照原型链的实现给他们添加了__proto__-->***.prototype。就是js环境提供了几个特殊的对象(函数),然后为了不违背规范,对这些对象(函数)做了处理。

    第一条肯定是对的,第二条是我的理解。

    回复
    0
  • 伊谢尔伦

    伊谢尔伦2017-06-12 09:31:33

    雷雷

    回复
    0
  • 取消回复