zoukankan      html  css  js  c++  java
  • js面向对象-继承

    定义父类

    // 原型模式与构造函数组合
    function Person(name,age,job) {
    	// 构造函数模式定义实例属性
    	this.name = name;
    	this.age = age;
    	this.job = job;
    }
    
    Person.prototype = {
    	//原型模式定义方法和共享属性
    	constructor: Person,  //重写原型改变了constructor,修正回来
    	sayName:function() {
    		alert(this.name);
    	},
    	sayJob:function() {
    		alert(this.job);
    	}
    }
    

      定义子类

    // 定义Singer类,并指定job为singer
    function Singer(name,age,song) {
    	Person.call(this,name,age,'singer');
    	this.song = song;
    }
    

      每次调用Singer构造函数都会把Singer的job设置为singer,并增加了一个属性song。

    Singer继承Person

    Singer.prototype = new Person();
    Singer.prototype.constructor = Singer;
    Singer.prototype.saySong = function() {
    	alert(this.song);
    }
    

      第一步把Singer的原型设置为Person的实例对象,第二步修正constructor指向,因为Singer的prototype等于Person,所以它的constructor指向的Person函数,第三步添加了一个Singer对象的方法。

    创建Singer对象

    var TaylorSwift = new Singer('Taylor Swift',22,'Love Story');
    TaylorSwift.saySong();  //"Love Story"
    TaylorSwift.sayJob();  //"singer"
    

      

  • 相关阅读:
    https://和http://区别
    选择排序法
    冒泡排序法-----一点也不简单喔
    hadoop启动后没有datanode怎么办
    洛谷 1379 八数码难题
    Floyd 算法详解
    datagridview 点击列标题排序
    Python【每日一问】05
    Python【每日一问】04
    Python【每日一问】03
  • 原文地址:https://www.cnblogs.com/yoomin/p/3932995.html
Copyright © 2011-2022 走看看