js对象冒充实现的继承

 //人类
    function Person(name) {
        this.name = name;
        this.showName = function () {
            console.log("my name is " + name);
        }
        this.eat = function () {
            console.log("人是铁饭是钢...");
        }
    }
    //白人
    function WhitePerson(name) {
        this.temp = Person;
        this.temp(name);
        delete this.temp;
        this.color = function () {
            console.log("我们皮肤是偏白色的");
        }
    }
    //黑人
    function BlackPerson(name) {
        Person.call(this, name);//这个时候Person中的this指向的是BlackPerson的对象了
        this.color = function () {
            console.log("我们皮肤是偏黑色的");
        }
    }
    var wPreson = new WhitePerson("tom");
    wPreson.showName();
    var bPerson = new BlackPerson("john");
    bPerson.showName(); 

以对象冒充的方式来实现js的继承

时间: 2024-09-30 00:38:36

js对象冒充实现的继承的相关文章

【JavaScript】类继承(对象冒充)和原型继承__深入理解原型和原型链

JavaScript里的继承方式在很多书上分了很多类型和实现方式,大体上就是两种:类继承(对象冒充)和原型继承. 类继承(对象冒充):在函数内部定义自身的属性的方法,子类继承时,用call或apply实现对象冒充,把类型定义的东西都复制过来,这样的继承子类与父类并没有多少关联,不互相影响,有利于保护自身的一些私有属性. 原型继承:每个函数都有自己的原型(prototype)属性,这个属性是在生成实例对象时自动创建的.它本身又是一个对象,拥有能够在实例间共享的属性和方法.而实例本身的属性和方法,则

javascript 组合模式,对象冒充+原形链继承

//使用对象冒充来继承,只能继承构造对象中的信息 //原形中的无法继承构造对象中的方法每次实例化都会分配空间 //造成空间浪费 function Box(name,age){ this.name=name; this.age=age; this.run=function(){ return this.name+this.age+"运行中..." } } Box.prototype.family='加'; function Desk(name,age){ Box.call(this,na

对象冒充 实现多继承

注意:原型链时不支持多继承的 // 对象冒充实现类的多重继承 var ClassA=function (color){ this.color = color; this.sayColor = function(){ console.log(this.color); } }; var ClassB=function (name){ this.name = name; this.sayName = function(){ console.log(this.name); } }; //C 同时继承 A

js对象冒充

<script>     function Person(name , age){         this.name = name ;         this.age = age ;         this.say = function (){             return "name : "+ this.name + "age: "+this.age ;         } ;     }     var o = new Object()

对象冒充实现继承,原型链继承方法,以及组合继承模式

function Person (){ this.name=“张三”; this.run = function(){ alert( this.name+'在运动' ) } } Person.prototype.work = function(){ alert( this.name+'在工作’ ) } // web类 继承person类 原型链+对象冒充的组合继承模式 function web(){ Person.call( this )  //  对象冒充实现继承 } var w = new w

JS面向对象,原型,继承

ECMAScript有两种开发模式:1.函数式(过程化),2.面向对象(OOP).面向对象的语言有一个标志,那就是类的概念,而通过类可以创建任意多个具有相同属性和方法的对象.但是,ECMAScript没有类的概念,因此它的对象也与基于类的语言中的对象有所不同.var box = new Object();box.name = 'Lee';box.age = 100;box.run = function(){ return this.name + this.age + '运行中...'; //th

js最好的继承机制:用对象冒充继承构造函数的属性,用原型链继承 prototype 对象的方法。

js最好的继承机制:用对象冒充继承构造函数的属性,用原型prototype继承对象的方法. function ClassA(sColor) { this.color = sColor; } ClassA.prototype.sayColor = function () { alert(this.color); }; function ClassB(sColor, sName) {//在 ClassB 构造函数中,用对象冒充继承 ClassA 类的 sColor 属性 ClassA.call(th

js对象的继承

<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>无标题文档</title> <script> //继承 : 子类不影响父类,子类可以继承父类的一些功能 ( 代码复用 ) //属性的继承 : 调用父类的构造函数 call //

JS 对象之继承

<!-- ————————JS对象之继承 ———————— --> //父类 function Sup(name){ this.name=name; } //父类的原型 Sup.prototype={ constructor:Sup, sayName:function(){ alert(this.name); } }; //子类构造函数 function Sub(age){ this.age=age; } //让子类的原型等于父类的实例 Sub.prototype=new Sup("