美文网首页
原型与原型链

原型与原型链

作者: 鑨的传人 | 来源:发表于2018-04-09 23:18 被阅读0次

    什么是原型?

    顾名思义,原型字面理解就是原来的类型或模型,这里可以理解为最初的函数模板.

    对于有基于类的语言经验 (如 Java 或 C++)的开发人员来说,JavaScript有点令

    人困惑,因为它是动态的,并且本身不提供一个class实现。(在 ES2015/ES6 中引

    入了class关键字,但只是语法糖,JavaScript 仍然是基于原型的[prototype])。

    1、JavaScript中所有的对象都是Object的实例,函数也是对象

    Object.prototype

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

    console.log(Object.prototype.__proto===null);//true

    typeof Object.prototype.__proto //'object'


    Foo.prototype

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


    function Foo(){}


    const  f =new Foo;


    f.__proto__//内部原型属性

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


    为什么用原型?

    原型为了实现面向对象思想【封装、继承、多态】,继承原型对象,实现多态

    例如:层层继承

    function Person(){}

    Person.prototype.getName='zhangsan';

    Person.prototype.Age='22';

    var Animal=function(){}

    Animal.prototype=new Person();

    Animal.prototype.address='南京'

    Animal.prototype.Age='30';

    var temp=new Animal;

    console.log(temp.getName);//zhangsan

    console.log(temp.address);//南京

    console.log(temp.Age);//30

    相关文章

      网友评论

          本文标题:原型与原型链

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