ECMAscript 实现类的继承

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>继承</title>
</head>
<body>
    <script type="text/javascript">
        // 利用对象冒充实现 函数继承
        function ClassA(sColor) {
            this.color = sColor;
            this.sayColor = function () {
                alert(this.color);
            };
        }
     ClassA.prototype.red = function(aa){
       console.log(aa)
     }
function ClassY() { this.load = function () { alert("loading"); }; } function ClassB(sColor, sName) { this.newMethod = ClassA; this.newMethod(sColor); // 删除此属性 确保其只执行一次,避免出现bug delete this.newMethod; // 多继承 this.newMe = ClassY; this.newMe(); // 删除此属性 确保其只执行一次,避免出现bug delete this.newMe; this.name = sName; this.sayName = function () { alert(this.name); }; }
     ClassB.prototype=ClassA.prototype;
var objA = new ClassA("blue"); var objB = new ClassB("red", "John"); objA.sayColor(); //输出 "blue" objB.sayColor(); //输出 "red" objB.sayName(); //输出 "John" objB.load(); //输出 "John"      objB.red("aaaaaaa") // 利用call实现继承 function ClassZ(sColor,sName){ ClassA.call(this,sColor) this.name = sName; this.sayName = function () { alert(this.name); }; } </script> </body> </html>

 

posted @ 2018-07-19 10:11  二月花开  阅读(108)  评论(0)    收藏  举报