JavaScript面向对象

梦想游戏人
目录:
Cocos2dx

创建对象:js不能定义类,但是能直接创建对象

1.创建对象-字面型对象:

通过key:value来创建

var Person=
{
    name:"hk",
    age:20,
    print:function()
    {
        console.log("name is "+ this.name + "   age is "+this.age);
    }
}

var p=Person;
p.age=15;
p.print();

2.创建对象-Object.create(ARG)

函数Object.create能在已知的对象创建一个新对象

var Person={
    name:"hk",
    age:20,
    print:function()
    {
        console.log("name is "+ this.name + "   age is "+this.age);
    }
}

var p=Object.create(Person);
p.age=15;

p.print();
Person.print();

3.创建对象-使用构造函数:(类似于C++ java等创建对象)

  function Person(name,age){
    this.name=age;
    this. age=age;
    this.print=function()
    {
        console.log("name is "+ this.name + "   age is "+this.age);
    }
}

var p=new Person("hk",20);
p.print();

原型Prototype:可以扩展对象的函数和属性  还可以达到继承的效果,是继承的基础(如lua中的metatable)

function Person(name, age) {
    this.name = name;
    this.age = age;
    this.print = function () {
        console.log("name is " + this.name + "   age is " + this.age);
    }
}

var p = new Person("hk", 20);

Person.prototype.growUp= function()
{
    this.age++;

}

Person.prototype.address = "12346";



p.growUp();

p.print();

console.log(p.address);

继承:利用cocos2dx-js提供的Class.extend

var MapData=cc.Class.extend(
{
...
});

var MapUI=MapData.extend(
{
...
});
Scroll Up