资讯专栏INFORMATION COLUMN

javascript原型和原型链,构造函数和实例

DobbyKim / 625人阅读

摘要:原型构造函数就是工厂,原型的实例就是工厂按照图纸生成的工具比如汽车,原型链隐式的就是生成的工具所具有的功能,而功能是工具的属性,生成什么样的工具是由工厂构造函数决定的,图纸是有工厂和客户共同决定的原型构造函数工厂下面是原型的实例,注意,不一

原型(构造函数)就是工厂,原型的实例就是工厂按照图纸生成的工具(比如汽车),
原型链(隐式的)就是生成的工具所具有的功能,而功能是工具的属性,
生成什么样的工具是由工厂(构造函数)决定的,图纸是有工厂和客户共同决定的

var carFactory =function(options){  //原型,构造函数 (工厂)

this.name = options.name;  //

this.color = options.color;

this.run  = function(){}; //

this.stop = function(){};

//......

}

//下面是原型的实例,注意,不一定要new,carFactory({name:"法拉利",color:"orange"})本身就是一个实例,
//可以调用对应的属性和方法如run()和stop()等,
//这里的new是一个继承,相当于另外复制了一份,是为了重复利用该工厂,而不是只生产一辆车,专门为该车提供服务,
//关于继承,可以参考:js继承

var car = new carFactory({name:"法拉利",color:"orange"});//实例

car //{...}

//在chrome下,输出一个对象,其中 __proto__即是原型链,是指该对象隐式的含有的一些功能,
//该功能由原型构造函数决定,而所有的原型的祖宗原型是Object,所以所有的对象都有Object的一些默认的属性和方法,如:toString等

以下代码加深理解

2..constructor=== Number // 2的构造者是Number
Number.constructor ===Function//Number 的构造者是Function
Function.constructor===Function //Function的构造者是 Function
Math.constructor=== Object// Math的构造者是Object
({}).constructor===Object// {}的构造者是Object
Object.constructor===Function //Object 的构造者是 Function
2..__proto__=== Number.prototype // 2的构造者是Number
Number.__proto__===Function.prototype //Number 的构造者是Function
Function.__proto__===Function.prototype //Function的构造者是 Function
Math.__proto__=== Object.prototype // Math的构造者是Object
({}).__proto__===Object.prototype // {}的构造者是Object
Object.__proto__===Function.prototype //Object 的构造者是 Function

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/91930.html

相关文章

  • javascript高级程序设计》笔记:原型图解

    摘要:不理解没关系,下面会结合图例分析上一篇高级程序设计笔记创建对象下一篇高级程序设计笔记继承参考之原型链的解读三张图搞懂的原型对象与原型链继承与原型链 文章直接从原型图解开始的,如果对一些概念不太清除,可以结合后面几节查看 1. 图解原型链 1.1 铁三角关系(重点) function Person() {}; var p = new Person(); showImg(https://s...

    vspiders 评论0 收藏0
  • 浅谈 JavaScript 原型

    摘要:数组的构造函数是原型链的指向与其他除以外的构造函数相同,的也指向顶级原型对象,每一个数组都是的实例,都指向。实例对象查找构造函数原型对象的方法一般会把对象共有的属性和方法都放在构造函数的原型对象上。 showImg(https://segmentfault.com/img/remote/1460000018998704?w=900&h=506); 阅读原文 概述 在 JavaScr...

    explorer_ddf 评论0 收藏0
  • JavaScript学习总结(五)原型原型详解

    摘要:原型对象内部也有一个指针属性指向构造函数实例可以访问原型对象上定义的属性和方法。在创建子类型的实例时,不能向超类型的构造函数中传递参数。 赞助我以写出更好的文章,give me a cup of coffee? 2017最新最全前端面试题 私有变量和函数 在函数内部定义的变量和函数,如果不对外提供接口,外部是无法访问到的,也就是该函数的私有的变量和函数。 function ...

    EscapedDog 评论0 收藏0
  • JavaScript进阶 - 1. 原型原型的概念

    摘要:对应的关系图如下讲解了构造函数和原型对象之间的关系,那么实例对象和原型对象之间的关系又是怎么样的呢下面讲解。原型对象的指向的是构造函数和本身没有属性,但是其原型对象有该属性,因此也能获取到构造函数。 JavaScript进阶 - 1. 原型和原型链的概念 我们好多经常会被问道JavaScript原型和原型链的概念,还有关于继承,new操作符相关的概念。本文就专门整理了原型和原型链的概念...

    elisa.yang 评论0 收藏0
  • JavaScript系列--浅析原型与继承

    摘要:综上所述有原型链继承,构造函数继承经典继承,组合继承,寄生继承,寄生组合继承五种方法,寄生组合式继承,集寄生式继承和组合继承的优点于一身是实现基于类型继承的最有效方法。 一、前言 继承是面向对象(OOP)语言中的一个最为人津津乐道的概念。许多面对对象(OOP)语言都支持两种继承方式::接口继承 和 实现继承 。 接口继承只继承方法签名,而实现继承则继承实际的方法。由于js中方法没有签名...

    draveness 评论0 收藏0
  • 进击JavaScript之(四)原型原型

    摘要:每一个由构造函数创建的对象都会默认的连接到该神秘对象上。在构造方法中也具有类似的功能,因此也称其为类实例与对象实例一般是指某一个构造函数创建出来的对象,我们称为构造函数的实例实例就是对象。表示该原型是与什么构造函数联系起来的。 本文您将看到以下内容: 传统构造函数的问题 一些相关概念 认识原型 构造、原型、实例三角结构图 对象的原型链 函数的构造函数Function 一句话说明什么...

    XBaron 评论0 收藏0

发表评论

0条评论

DobbyKim

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<