美文网首页
对JavaScript原型的理解

对JavaScript原型的理解

作者: heatven | 来源:发表于2014-06-25 22:00 被阅读0次

JavaScript中是没有类的概念的,有的只是原型和对象。

在说原型之前先说说JavaScript中对象的三种类型:

(1)用户创建的对象,也就是用new关键字创建出来的对象。如:

         var obj = new Object();

(2)构造函数(其实在JavaScript中任何非匿名函数都可以是构造函数)对象。如上面的Object就是个构造函数对象。

(3)原型对象。构造函数的prototype属性所指向的对象。

上面三类对象的__proto__属性所指向的对象即为该对象的原型,也对应该对象的构造函数的prototype属性。Function.prototype是所有函数的原型,Object.prototype是所有对象的祖先。因为Object是一个构造函数,所有Object.__proto__ = Function.prototype。又因为Function.prototype是一个对象(原型对象),所以Function.prototype.__proto__ = Object.prototype。而Function.__proto__ = Function.prototype。因为Object.prototype是所有对象的祖先所以有Object.prototype.__proto__ = null。另外原型对象中还有一个指向构造函数的属性constuctor。拿Function 和 Object这两个构造函数为例,它们的原型属性Function.prototype 和 Object.prototype 中都有一个constructor属性。其中Function.prototype.constructor = Function, Object.prototype.constructor = Object。

下面用一个例子来说明:

 function func(){ };

 var f = new func();

console.log( f.__proto__ == func.prototype); // true

console.log( f.__proto__.__proto__ == Object.prototype); //true

console.log( func.__proto__ == Function.prototype); // true

console.log( func.prototype.__proto__ == Object.prototype); //true

console.log( func.prototype.constructor == func); //true

console.log( Object.__proto__ == Function.prototype); //true

console.log( Object.property.__proto__ == null); //true

相关文章

  • 原型、原型链

    理解JavaScript原型 彻底理解JavaScript原型 原型 原型是一个对象,所有对象都可以成为原型,其...

  • 对JavaScript原型的理解

    JavaScript中是没有类的概念的,有的只是原型和对象。 在说原型之前先说说JavaScript中对象的三种类...

  • 对Javascript原型, 原型链的理解?

    每个对象内部都会初始化一个属性, 就是原型, 当我们访问一个对象的属性时, 如果对象本身不存在这个属性, 那么引擎...

  • 简单认识 JS 原型与原型链

    原型是JavaScript中一个比较难理解的概念, 为深入理解JavaScript 中的原型、原型链,整理下思路。...

  • 原型和原型链篇

    原型和原型链 1.理解原型设计模式以及JavaScript中的原型规则 原型设计模式JavaScript是一种基于...

  • Javascript学习笔记-原型链

    对于Javascript原型链,是Javascript中很重要的内容,要理解关键有三点:Javascript中原型...

  • JavaScript 原型hook实现

    基于原型的hook实现: 从中理解是JavaScript 基于原型

  • 深入理解javascript原型和闭包

    王福朋 - 博客园 —— 《 深入理解javascript原型和闭包》 目录:深入理解javascript原型和闭...

  • 对JavaScript原型链的理解

    原型是什么? 在Java中,对象会从类中继承属性,方法等,但JavaScript中并没有类的概念,JavaScri...

  • 理解JavaScript原型

    JavaScript的原型是JavaScript中的重要一环,根据网上的一些资料和自己的理解,对原型做一个解释。 ...

网友评论

      本文标题:对JavaScript原型的理解

      本文链接:https://www.haomeiwen.com/subject/dhjjtttx.html