美文网首页石臼墙话板周文佳语强化班三月听我说
对于js原型和原型链继承的简单理解

对于js原型和原型链继承的简单理解

作者: 李芳_三月 | 来源:发表于2019-11-24 17:30 被阅读0次

原型的定义

Js所有的函数都有一个prototype属性,这个属性引用了一个对象,即原型对象,也简称原型。这个函数包括构造函数和普通函数,我们讲的更多是构造函数的原型,但是也不能否定普通函数也有原型。

先看一下普通函数的原型

例如:

function animal(){

}//这个函数就有原型属性,引用的对象就是object

接下来,我们通过一个构造函数的例子来了解原型。



function animal(){

        this.name =function(){

            document.write("我有名字
");

        }

    }

    function cat(){

        this.climb =function(){

            document.write("我会爬树
");

        }

    }

    function tiger(){

        this.type =function(){

            document.write("我是一直虎
");

      }

    }   cat.prototype =newanimal();//这里就是继承tiger.prototype =new cat();

    varsmtiger =new tiger();

  smtiger.climb();//这里输出“我会爬树”

smtiger.name(); //这里输出“我有名字”


我们new了一个对象小虎smtiger对象,而且在tiger的构造函数中只有一个type,它不会爬树,也没有名字;

但是!!!通过原型,tiger继承了cat,cat又继承了animal,所以:小虎会爬树,也有了名字。

js虽然没有类,但是却是面向对象的一门脚本语言,就是因为它可以通过prototype来实现继承


1、tiger()构造函数new一个tiger对象--》这个对象的_proto_指向cat对象,tiger()构造函数的prototype指向cat对象;

2、cat()构造函数new一个cat对象--》这个对象的_proto_指向animal对象,cat()构造函数的prototype指向animal对象;

3、animal()构造函数new一个animal对象--》这个对象的_proto_指向一个普通的object(也就是js的object“个人理解”),animal()构造函数的prototype指向普通的object对象,这个object对象有constructor的构造函数,指向animal(),所以anima其实是转了一圈又回来指向自己,表现为aniaml;

4、object()new一个obj对象--》这个对象的_proto_指向系统的object(应该就是window“个人理解”),object()的prototype指向系统的object对象;

5、系统的object对象指向null。

相关文章

  • 2018-01-09 关于javascript原型链的思考 pl

    s 深入理解原型和原型链? 构造函数 理解原型和原型链 new的时候js都干了什么? 一个实现继承的demo 构造...

  • JavaScript 原型、原型链与原型继承

    原型,原型链与原型继承 用自己的方式理解原型,原型链和原型继承 javascript——原型与原型链 JavaSc...

  • 对于js原型和原型链继承的简单理解

    原型的定义 Js所有的函数都有一个prototype属性,这个属性引用了一个对象,即原型对象,也简称原型。这个函数...

  • 再来看一次JS继承

    原型链继承 理解原型链的概念 用一张图来理解原型链再合适不过了。 总结概括JS红宝书上对原型链的概念:每个函数都有...

  • js基础之实现继承的几种方式

    js 实现继承的方式有: 原型链继承; 构造函数继承; 组合继承(原型链继承 + 构造函数继承)(最常用);(原型...

  • js实现继承的几种方式

    js实现继承有几种方式,这里我们主要探讨 原型链继承 构造继承 组合继承(原型链和构造继承组合到一块,使用原型链实...

  • JS的__proto__和prototype

    最近在回顾JS的原型和原型链的知识,熟悉JS的同学都知道JS的继承是靠原型链实现的,那跟原型链相关的属性__pro...

  • js_继承及原型链等(四)

    js_继承及原型链等(三) 1. 继承 依赖于原型链来完成的继承 发生在对象与对象之间 原型链,如下: ==原型链...

  • 关于JS中的原型和原型链

    目录 关于js 对象和原型 原型链 基于原型链的继承 参考资料ECMAScript 6 入门JavaScript原...

  • 原型链的理解

    看一个实例 需要知道 要理解原型和原型链首先要知道几个概念: 在js里,继承机制是原型继承。继承的起点是 对象的原...

网友评论

    本文标题:对于js原型和原型链继承的简单理解

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