码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript继承

时间:2018-10-02 17:24:28      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:gets   添加   div   tor   一个   type   原型   apply   方法   

1、传统继承形式 ——>原型链继承

  缺陷:过多的继承了没用的属性

function SuperType() {
     this.property = true;
}
SuperType.prototype.getSuperValue
= function() { return this.property; } function SubType () { this.property = false; ) //继承superType SubType.prototype = new SuperType(); //添加新的方法 SubType.prototype.getSubValue = function() { return this.property; } //重写超类中的方法
SubType.prototype.getSuperValue = function() {
  return false;
}
var instance = new SubType(); console.log(instance.getSuperValue) //false

2、借用构造函数

  不足:不能继承借用构造函数的原型;每次构造函数都多走一个函数

function SuperType(name, age) {
  this.name = name;
  this.age = age;
}
function SubType(name, age, gender){
  SuperType.call(this, name, age);
  //SuperType.apply(this, [name, age]);
  this.gender = gender;
}
var instance = new SubType("huang", 18, "male");

console.log(instance.name)  //"huang"
console.log(instance.gender)  //"male"

3、圣杯模式

var inherit = (function() {
  var F = function() {};
  return function(Target, Origin) {
    F.prototype = Origin.prototype;
    Target.prototype = new F();
    Target.prototype.constructor = target;
    Target.prototype.uber = Origin.prototype;
  }
}())

***方法

 1、obj.hasOwnProperty(property)   判断对象是否有某个属性

 2、obj instanceof super  判断obj的原型链上是否存在super

 3、Object.create(原型)

    var obj = Object.create(null)  //这样构造的对象原型链为空

JavaScript继承

标签:gets   添加   div   tor   一个   type   原型   apply   方法   

原文地址:https://www.cnblogs.com/lianchenxi/p/9736558.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!