构造函数(constructor)与原型链(prototype)关系

栏目: 编程语言 · 发布时间: 7年前

内容简介:在Javascript中不存在class的概念,它的class概念是通过构造函数(constructor)与原型链(prototype)来实现。1.构造函数(constructor):创建对象时的初始化对象,总是与new 关键是一同出现。2.原型(prototype):是一个对象,实现对象的属性继承。javascript 中的对象通过

在Javascript中不存在class的概念,它的class概念是通过构造函数(constructor)与原型链(prototype)来实现。

1.构造函数(constructor):创建对象时的初始化对象,总是与new 关键是一同出现。

构造函数存在以下特点:
    1、构造函数内的this 指向当前实例对象。
    2、使用new 关键字实例化当前对象。
    3、构造函数首字母大写,区分普通函数。
    4、实例对象都可以继承构造函数中的属性和方法。但是,同一个对象实例之间,无法共享属性。

2.原型(prototype):是一个对象,实现对象的属性继承。javascript 中的对象通过 proto 来指向原型对象,可以通过Object.__proto__ 来访问

3.构造函数与与原型的联系:

<script>
   function  Demo(){
            
     }
     var demo = new Demo()
     var  data= demo.prototype = function(){

     }
    
     console.log(demo.__proto__)
     console.log(data.constructor )
     console.log(data.prototype.__proto__)
     console.log(demo.constructor.prototype)
     console.log(demo.constructor)
    输出:
    {constructor: ƒ}constructor: ƒ Demo()__proto__: Object
    ƒ Function() { [native code] }
    {constructor: ƒ, __defineGetter__: ƒ, __defineSetter__: ƒ, hasOwnProperty: ƒ, __lookupGetter__: ƒ, …}
    {constructor: ƒ}
    ƒ Demo(){    }
</script>

从以上输出结果可以看出:

构造函数的 __proto__ 指向原型对象;
     原型的constructor 指向构造函数Function;
     原型的 prototype.__proto__  等于 Object.__proto__;
     实例 的 constructor.prototype 指向原型;
     实例的constructor 指向构造函数
   
   
   
   
引用图例:
![1460000018155881][1]

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Visual Thinking

Visual Thinking

Colin Ware / Morgan Kaufmann / 2008-4-18 / USD 49.95

Increasingly, designers need to present information in ways that aid their audiences thinking process. Fortunately, results from the relatively new science of human visual perception provide valuable ......一起来看看 《Visual Thinking》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器