精华内容
下载资源
问答
  • 原型链是什么

    2021-01-11 00:12:41
    原型链就是原型组成的链。对象的__proto__这个对象的原型,而这个原型也有它的原型,就可以通过__proto__向上找,这就是原型链,当向上找到Object的原型时,这条原型链就算到头了。

    原型链就是原型组成的链。对象的__proto__是这个对象的原型,而这个原型也有它的原型,就可以通过__proto__向上找,这就是原型链,当向上找到Object的原型时,这条原型链就算到头了。

    展开全文
  • 原型链是什么

    2021-03-02 11:16:09
    讲原型链就应该先从构造函数说起,构造函数就是一个函数,例如 构造函数 function Person(){} ...那原型链是什么呢,在讲原型链之前还有一个实例需要说明。 实例 实例是构造函数构造出来的实例,实例具有一

    讲原型链就应该先从构造函数说起,构造函数就是一个函数,例如

    构造函数

    function Person(){}

    以上构造了一个名为Person的函数,每个函数都有一个属性prototype 属性指向函数的原型,

    原型是一个对象。

    原型默认有 constructor 属性,此属性指向函数本身。

    Person.prototype.constructor ==Person //true

    那原型链是什么呢,在讲原型链之前还有一个实例需要说明。

    实例

    实例是构造函数构造出来的实例,实例具有一个默认属性 __proto__ 属性指向原型

    构造函数有两个特点,

    构造:有构造即创建的功能。

    函数:是一个函数,具有函数的所有特征。

    构造函数的使用:

    function CreateObject(name,age,say){
        this.name=name;
        this.age=age;
        this.say=function(){
            console.log(this.name)
        };
    }
    var o=new CreateObject();

     

    使用new操作符创建实例会经历四个步骤:

    1,创建一个新对象。

    2,将this指向新对象。

    3,执行函数内代码。

    4,返回对象。

    到此,我们可以得到一个构造函数、实例、原型的三角关系图了。

    构造函数通过new创建实例对象,

    实例通过 __proty__ 属性访问 原型,

    原型通过 constructor访问 构造函数,构造函数通过 prototype 访问 原型。

    原型链

    原型链就是原型的原型 的原型 的原型......

    我们知道构造函数和实例都可以访问原型,并且原型的值是可以改变的。

    由此,把实例指向的原型值更改为一个其他的构造函数构造的实例,实例默认拥有 __proto__属性,这样原型链就出来了,实例.__proto__.__proto.__proto__,

    提示:JS中的所有对象都是继承自Object对象的,所以最后的__proto__会指向 null。

    图实:

    代码:

    function Person(){};
    Person.prototype.action="行走";
    
    function Teacher(){};
    Teacher.prototype=new Person();
    
    let tA=new Teacher()

    浏览器运行结果:

     

    参考文章:

    1,关于prototype、__proto__与constructor的图解,写的详细易懂,总结的很好。

    https://blog.csdn.net/cc18868876837/article/details/81211729

    2,《JavaScript高级程序设计》第八章。

     

    展开全文
  • Web前端面试指导 二十七 原型是什么 原型链是什么
                   

    题目点评

    这道题目是属于JavaScript比较难理解的知识点,涉及到的知识也非常抽象深奥,属于JavaScript面向对象思维范畴,如果没有一点面向对象的编程思维的同学,想必是难倒了,即使有一定OOP的同学要回答起来也是比较费劲,不是一时半会能说清楚。但面试官问到了,说明他是懂技术的,用比较专业的术语来回答就好,这样会比较言简意赅。

    解题思路

    原型是什么?

    在JavaScript中原型是一个prototype对象,用于表示类型之间的关系。

    原型链是什么?

    JavaScript万物都是对象,对象和对象之间也有关系,并不是孤立存在的。对象之间的继承关系,在JavaScript中是通过prototype对象指向父类对象,直到指向Object对象为止,这样就形成了一个原型指向的链条,专业术语称之为原型链。

    举例说明

          Student → Person → Object   ,学生继承人类,人类继承对象类

    代码

    <span style="font-size:14px;">varPerson=function(){this.age="匿名"};varStudent=function(){};//创建继承关系,prototype执行Person的一个实例对象Student.prototype=new  Person();</span>

    原型API关系图

    精简图



               
    展开全文
  • 简述原型链是什么,有什么用处?

    千次阅读 2019-07-04 10:24:42
    【简述原型链是什么,有什么用处?】 【修真院web小课堂】 大家好,我是IT修真院上海分院第8期的学员周能,一枚正直纯洁善良的web程序员,今天给大家分享一下,修真院官网web任务4,深度思考中的知识点——简述原型...

    这里是修真院前端小课堂,每篇分享文从

    八个方面深度解析前端知识/技能,本篇分享的是:

    【简述原型链是什么,有什么用处?】

    【修真院web小课堂】

    大家好,我是IT修真院上海分院第8期的学员周能,一枚正直纯洁善良的web程序员,今天给大家分享一下,修真院官网web任务4,深度思考中的知识点——简述原型链是什么,有什么用处?若想访问一个对象的原型,应该使用什么方法

    (1)背景介绍:
    什么是原型

    一个函数可以看成一个类,原型是所有类都有的一个属性,原型的作用就是给这个类的每一个对象都添加一个统一的方法

    PROTOTYPE

    JS都是用new来从构造函数生成一个实例对象

    构造函数生成的实例无法共享属性和方法,考虑到这点于是将prototype属性引入到了JS中

    PROTOTYPE这个属性包含一个对象,里面放着所有实例需要共享的方法和属性,而不需要共享的属性和方法可以放在构造函数中

    由于所有的实例对象共享同一个prototype对象,那么从外界看起来,prototype对象就好像是实例对象的原型,而实例对象则好像"继承"了prototype对象一样。

    (2)知识剖析:
    __PROTO__和PROTOTYPE

    每个对象都有一个__proto__属性,而prototype只有函数才有

    对象是由构造函数创建的,函数也是对象,函数是由Function创建的,对象的__proto__等于创建者的prototype

    什么是原型链

    每个对象都有一个__proto__,它指向它的prototype原型对象,而prototype原型对象又具有一个自己的原型对象,就这样层层向下上直到一个对象的原型prototype为null 这个查询的路径就是原型链

    (3)常见问题:
    如何访问一个对象的原型?

    (4)解决方案:

    PROTO,PROTOTYPE,OBJECT.GETPROTOTYPEOF()

    prototype,只有函数对象才拥有一个属性,用来访问其原型对象

    proto,是任何引用类型都拥有的属性,指向其构造函数的prototype,但是并不是标准写法,是一个特殊的内部属性

    Object.getPrototypeOf()该属性是ES5引入的一个标准属性,用来获取对象的原型,其作用和__proto__是一样

    function Pig(name) {

    this.name = name

    }

    var a = new Pig(“胖胖”);

    var b = new Pig(“瘦瘦”);

    Pig.prototype.like = “red”

    a.proto.like=“red”;

    Object.getPrototypeOf(a).like=“red”

    (5)编码实战:

    (6)拓展思考:

    使用PROTOTYPE需要注意什么

    尽量去修改增添,使用对象字面量创建原型方法要谨慎

    function Pig(name) {

    this.name = name

    }

    Pig.prototype = {//这个写法必须写到最上面,必须要在实例对象前面

    like: “red”,

    }

    var a = new Pig(“胖胖”);

    var b = new Pig(“瘦瘦”);

    Object.getPrototypeOf(a).like=“red”

    (7)参考文献:
    https://www.jb51.net/article/105090.htm

    https://zhuanlan.zhihu.com/p/35790971

    (8)更多讨论:
    1、什么是原型?

    答:一个函数可以看成一个类,原型是所有类都有的一个属性,原型的作用就是给这个类的每一个对象都添加一个统一的方法

    2、什么是原型链

    答:每个对象都有一个__proto__,它指向它的prototype原型对象,而prototype原型对象又具有一个自己的原型对象,就这样层层向下上直到一个对         象的原型prototype为null 这个查询的路径就是原型链
    

    3、如何访问一个对象的原型?

    答:prototype,只有函数对象才拥有一个属性,用来访问其原型对象

      __proto__,是任何引用类型都拥有的属性,指向其构造函数的prototype,但是并不是标准写法,是一个特殊的内部属性
    
      Object.getPrototypeOf()该属性是ES5引入的一个标准属性,用来获取对象的原型,其作用和__proto__是一样
    
    展开全文
  • 原型链是什么样的?

    2017-07-12 12:24:00
    原型链是什么链呢? 简单说下自己的理解: 每个对象都有一个原型对象. 原型对象中存放这这个对象的属性和方法. 每个对象都有一个指针_proto_. 指向自己的原型对象. 每个对象都有一个prototype属性. 这个属性是一个...
  • 显式原型与隐式原型显式原型:prototype 隐式原型:__proto__在js中万物皆对象,方法(Function)对象,方法的原型(Function.prototype)对象,对象具有属性(__proto__)称为隐式原型,对象的隐式原型指向构造...
  • 原型链,闭包,new操作符创建一个对象时做了什么,call和apply和bind 原型链是什么原型链是什么? 此时在控制台下可以找到这个对象的原型(就是这个对象的爹)对象很弱,但是他爹厉害了,这里的concat实际是他爹...
  • JS原型和原型链是什么

    万次阅读 多人点赞 2018-06-15 17:50:58
    原型链"(prototype chain)模式,来实现继承。 Brendan Eich设计javascript之初为了实现网页与浏览器之间交互的一种简单的脚本语言 如果真的一种简易的脚本语言,其实不需要有"继承"机
  • 【简述原型链是什么,有什么用处?若想访问一个对象的原型,应该使用什么方法?】 每篇分享文从 【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】 八个方面...
  • 这里是修真院前端小课堂,每篇分享文从 【背景介绍】【知识...【简述原型链是什么,有什么用处?若想访问一个对象的原型,应该使用什么方法?】 1.背景介绍 原型链是一种机制,指的是JavaScript每个对象包括原型...
  • 原型是JavaScript这门语言最重要的部分之一 ,理解原型以及原型机制对于学习这门语言来说事半功倍。这篇博客帮助你理解。 构造函数与实例 Person.prototype.lastName = 'chen'; function Person(){ firstName ...
  • 假如要查询对象O的属性x,如果O中不存在x,那么将会继续在O的原型对象中查找属性x。如果原型对象中也没有属性x,这个原型对象也有原型,那么继续在这...这就是原型链存在的意义!也正是这个链实现了属性的继承。 ...
  • 原型链是什么鬼?

    2018-12-03 20:50:20
    在打印控制台打印,越来越复杂__proto__和prototype,constructor又是什么关系? developer1.__proto__===developer.prototype; //true developer1.__proto__.__proto__===human.prototype; //true developer1....
  • 在 c++ 中,我们可以知道,类事物的抽象,通过类可以生成一个个实例化的具体对象,类提供着生成对象的“模板”。在 JavaScript 中构造函数(constructor)就起着“模板”的作用,通过构造函数,我们可以生成实例化...
  • 原型在了解原型链之前,先了解下原型啥Js语言没有类和实例(es6之前),不能像java一样实现继承,但是咱们js有对象呀!!双11还能new一个对象出来嘿嘿,因此可以理解成js的继承基于对象的,而函数也对象。那...
  • // 构造函数有个prototype指向原型对象 // Father.prototype -> 原型地址 // 原型有有个指向构造函数的constructor // Father.prototype.constructor -> 构造函数地址 // 实例有一个指向原型的__proto__ Son...
  • 学习原型链之前我们首先要明白什么是原型;那么什么是原型呢?我们来简单学习一下: 只要我们像这样简单的定义一个函数foo(),就可以访问像访问其他对象一样访问该函数的属性: &gt;&gt;&gt;function ...
  • 题目点评 这道题目是属于JavaScript比较难理解的知识点,涉及到的知识也非常抽象深奥,属于JavaScript面向对象思维范畴,如果没有一点面向对象的编程思维的同学,想必是难倒了,...原型是什么? 在JavaScript中原型是
  • 转载自:https://blog.csdn.net/qq_42019025/article/details/80708446

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,479
精华内容 991
关键字:

原型链是什么