zoukankan      html  css  js  c++  java
  • cocos2d JS-(JavaScript) JavaScript 中的简单继承关系

    JavaScript 语言本身没有提供类,没有其他语言的类继承机制,它的继承时通过对象的原型实现的,但这不能满足我们对 Cocos2d-JS 引擎的要求,所有类都直接或间接继承实现的。

     

    var Person = Class.extend({   //声明一个Person类,继承自 Class,Class.extend()表示继承自Class

    init: function(isDancing){ //定义构造函数init初始化属性

    this.dancing = isDancing;

    },

    dance: function () { //定义普通函数dance(),返回属性dancing

    return this.dancing;

    }

    });

     

    var Ninja = Person.extend({ //声明Ninja类继承自 Person 类

    init: function () { //定义构造函数 init,在该函数中 this._super(false) 语句时调用父类构造函数初始化父类中的属性

    this._super(false);

    },

    dance: function (){ // 重写 dance() 函数,它会覆盖父类的 dance() 函数

    //Call the inherited version of dance()

    return this._super( ); //调用父类的 dance() 函数

    },

    swingSword: function () { //这个函数是子类 Ninja 新添加的函数 swingSword()

    return true;

    }

    });

     

    var p = new Person(true); //通过 Person 类创建 p 对象,给构造函数的参数是 true

    console.log(p.dance()); //打印 p 对象 dance 属性  -> true

     

    var n = new Ninja(); //通过 Ninja 类创建 n 对象,构造函数位空,默认初始化采用 fales 初始化父类中的 dance 属性,打印为 false

    console.log(n.dance()); //false

    console.log(n.swingSword()); //true

     

    这种简单的 JavaScript 继承方法事实上实现了一般意义上的面向对象概念的继承和多态机制,这种继承方法是 Cocos2d-Js 继承机制的核心。

  • 相关阅读:
    C# 常用函数和方法集
    CSS选择器、优先级和匹配原理
    都是王安石惹的祸?
    世界上的一类
    历史之不可理喻片段
    历史惊人的相似
    20世纪鲜为人知的军事巨灾
    unity制作简单血条
    Unity中Instantiate物体失效问题
    Unity3D实现DoubleClick的一种方法
  • 原文地址:https://www.cnblogs.com/luorende/p/7141041.html
Copyright © 2011-2022 走看看