JavaScript继承

Posted 0恋晨曦0

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript继承相关的知识,希望对你有一定的参考价值。

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继承的主要内容,如果未能解决你的问题,请参考以下文章

30秒就能看懂的JavaScript 代码片段

常用Javascript代码片段集锦

48个值得掌握的JavaScript代码片段(上)

如何将此 JavaScript 代码片段翻译成 Parenscript?

javascript 代码片段

javascript JS-常用代码片段