如何理解javascript中,原型也是一个对象?
高洛峰
高洛峰 2017-04-10 12:46:13
0
4
537

以spiderMonkey作为js引擎的火狐浏览器和V8引擎的chrome浏览器,都支持通过非标准__proto__属性去访问原型。 实例对象的__proto__属性确实是个对象,但是构造函数的__proto__却是个空函数。 那么,原型也是个对象,如何理解呢?

   var a={};
   typeof a.__proto__;//object
   a.__proto__===Object.prototype;//true
   var f=function(){};
   f.__proto__===Function.prototype;//true
   typeof Function.prototype;//function
   Function.prototype===Object.__proto__;//true

ECMA引入了标准对象原型访问器Object.getPrototype(object),那么用这个方法也可以测试。 对一个构造函数var F=function(){}而言,Object.getPrototype(F)返回的是一个空函数,也就是函数类型。 那么我是否可以理解,“原型”也是对象,这里的“原型”指的仅仅是实例对象的“原型”,而非构造函数的“原型”?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

모든 응답(4)
洪涛

javascript 中的两种值类型:原始值(primitive)和对象(object)

原始值包括

  1. 字符串
  2. 数字:在 JavaScript 中所有的数字都是浮点数
  3. 布尔值
  4. null
  5. undefined

所有其它的值都是对象(object)

具体细节可查看我翻译的这篇文章:JavaScript 并非所有的东西都是对象

另:javascript 中没有「构造函数」一说。

你提到的:

构造函数的proto却是个空函数

函数的类型是 object,所以,空函数也是对象。

伊谢尔伦

理解javascript系列

巴扎黑

推荐你看下一篇经典的介绍javascript的原型以及原型链的博文,很有深度又感觉通俗易懂.我原先对这个概念也很模糊,理解了,好像有没理解,看过该文以后,基本有了一个清晰的认识,通过几天的深入理解,可以说现在基本掌握了。

这个关键的概念只要你懂了,基本其它的也就很容易懂了。好好阅读下吧,希望对你有所帮助,链接在下面:

深入理解javacript之prototype

刘奇

javascript中的可变量都是对象啊

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!