zoukankan      html  css  js  c++  java
  • JS原型和继承

    1.创建对象的方式

    工厂模式:使用简单的函数构造函数,为对象添加属性与方法,然后返回对象。这个模式后来被构造函数模式取代

    构造函数模式:可以创建自定义引用类型,可以向创建内置对象实例一样使用new

    原型模式:使用构造函数的prototype属性来指定那些应该共享的属性和方法。

    组合使用狗仔函数模式与原型模式时,使用构造函数来定义实例属性,使用原型来定义共享的属性和方法。

    2.继承

    原型链继承共享的属性和方法,借助构造函数继承实例属性

    function Person(name,sex){
        this.name=name;
        this.sex=sex;
    }
    Person.prototype.showName=function(){
        alert(this.name);
    }
    Person.prototype.showSex=function(){
        alert(this.sex);
    }

    function Worker(name,sex,job){
        Person.call(this,name,sex);
        this.job=job;
    }
    for(var in Person.prototype){
        Worker.prototype[i]=Person.prototype[i];
    }
    Worker.prototype.showJob=function(){
        alert(this.job);
    }
    var obj=new Worker('blue','女','计算机');
    obj.showName();
    obj.showSex();
    obj.showJob();

    3.一些基本概念

    原型对象:每个构造函数都有一个属性---原型对象(prototype)。fun.prototype  就是fun的一个实例对象。就在fun创建的时候,就创建了一个它的实例对象并赋值给它的prototype。

    原型对象的作用:主要用来继承

    原型链:JS在创建对象的时候,无论是普通对象还是函数对象,都有一个叫_proto_的内置属性,用于指向创建它的函数对象的原型对象prototype  实例与原型的链条

    总结:每个构造函数都有一个原型对象。原型对象都包含一个指向构造函数的指针,而实例都包含了一个指向原型对象的内部指针。

  • 相关阅读:
    [BZOJ 1833] 数字计数
    [Codeforces 23E] Tree
    [Codeforces 23D] Tetragon
    前端基础之CSS
    前端基础之HTML
    youku项目总结(粗略总结)
    MySQL视图、触发器、事务、存储过程、内置函数、流程控制、索引
    MySQL多表查询,Navicat使用,pymysql模块,sql注入问题
    MySQL单表查询
    MySQL表关系--外键
  • 原文地址:https://www.cnblogs.com/hello-web/p/6852739.html
Copyright © 2011-2022 走看看