Js的对象继承

作者: 沉寂之舟 | 来源:发表于2018-04-08 14:41 被阅读8次
JS的对象继承需要用到prototype,但是也有多种方式.大概测试了一些.方便以后查用.
//定义class1
function class1(){
    //构造函数
}
//定义class1的成员
class1.prototype={
    method:function(){
          console.log(1);
    }
}
//定义class2
function class2(){
    //构造函数
}
//让class2继承于class1
class2.prototype= class1.prototype;
//千万不要这样用,这样会同时覆盖到class1的方法
class2.prototype.method=function(){
    console.log(2);
}

//定义class2
function class3(){
    //构造函数
}

//让class3继承于class1,用new出一个对象
class3.prototype= new class1();
//给class2重复定义方法method
class3.prototype.method=function(){
    console.log(3);
}

//定义class4,还是继承class1
function class4() {  
    class1.call(this);
}
Object.setPrototypeOf(class4.prototype, class1.prototype);
class4.prototype.method=function(){
    console.log(4);
}

//创建两个类的实例
var obj1=new class1();
var obj2=new class2();
var obj3=new class3();
var obj4=new class4();
//分别调用两个对象的method方法
obj1.method();
obj2.method();
obj3.method();
obj4.method();

程序输出为:
2
2
3
4

可以看出,第一种class2.prototype= class1.prototype仅仅是把两个原形直接赋值相等,这样若再修改子类,就会"污染"到父类.
而其他方法则比较安全.

相关文章

  • JS汇总---面向对象&数组

    面向对象 js原型链的继承 静态属性怎么继承 js原型链以及特点 面向对象有哪几个特点 封装,继承,多态 对象的继...

  • js对象的三种继承方式

    js对象的三种继承方式转载 2017年06月23日 15:07:56 13300一,js中对象继承对象的js中有三...

  • JS中继承的实现

    JS中继承的实现 #prototype (js原型(prototype)实现继承) 全局的Function对象没有...

  • JS对象和继承

    JS对象和继承 JS是个无类的语言,因此对于对象构造器(类)和对象的继承就值得我们研究了。本文讲述JS中构造器的表...

  • js 对象继承

  • js 对象继承

    内容来自《JavaScript高级程序设计》第三版第6章第3节 原型链 ECMAScript中描述了 原型链的概念...

  • js 对象继承

    js变量可分为两部分,基本类型和引用类型。 基本类型:基本类型比较简单,包括Undefined,Null,Bool...

  • js对象继承

    Object对象是顶级父类它的原型中的方法和属性任何对象都可以调用,例如toString就是Object的方法。继...

  • #js继承

    js继承的概念 js里常用的如下两种继承方式: 原型链继承(对象间的继承)类式继承(构造函数间的继承) 类式继承是...

  • Js的对象继承

    JS的对象继承需要用到prototype,但是也有多种方式.大概测试了一些.方便以后查用. 程序输出为:2234 ...

网友评论

    本文标题:Js的对象继承

    本文链接:https://www.haomeiwen.com/subject/trophftx.html