JS-Object 原型式继承

如何创建一个继承自另一个对象的JavaScript对象呢?

  1. 定义一个只定义了一些属性的Person构造器
function Person(first, last, age, gender, interests){
  this.name = {
    first,
    last
  };
  this.age = age;
  this.gender = gender;
  this.interests = interest;
}
  1. 所有方法都定义在构造器的prototype属性上。
Person.prototype.greeting = function(){
  alert('Hi! I \'m ' + this.name.first + '.');
}
  1. 创建一个Teacher类,这个类会继承Person的所有成员,同时页包括:
    • 一个新的属性,subject--这个属性包含了教师教授的科目
    • 一个被更新的greeting()方法,这个方法打招呼听起来比一般的greeting()更正式一点。
function Teacher(first, last, age, gender, interests, subject){
  Person.call(this, first, last, age, gender, interests);
  this.subject = subject;
}
  1. Teacher() 从Person()的原型对象里继承方法:
    Teacher.prototype = Object.create(Person.prototype);
    现在Teacher()prototypeconstructor属性指向的是Person().
  2. 这或许会造成很大的问题,所以我们需要将其正确的设置--在底下加上一行代码来解决:
    Teacher.prototype.constructor = Teacher;
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  •   面向对象(Object-Oriented,OO)的语言有一个标志,那就是它们都有类的概念,而通过类可以创建任意...
    霜天晓阅读 2,159评论 0 6
  • 在JavaScript中,一切都是对象。 使用深度优先遍历,element是一个DOM元素,selectors是一...
    garble阅读 601评论 0 1
  • Scala与Java的关系 Scala与Java的关系是非常紧密的!! 因为Scala是基于Java虚拟机,也就是...
    灯火gg阅读 3,520评论 1 24
  • 博客内容:什么是面向对象为什么要面向对象面向对象编程的特性和原则理解对象属性创建对象继承 什么是面向对象 面向对象...
    _Dot912阅读 1,461评论 3 12
  • 今天我看了电影垫底辣妹,本以为是部毁三观电影,谁知道越往后面看,满满的正能量,在日本,女人的地位在电影中一目了然,...
    小宜香不香阅读 181评论 0 0