JavaScript面向对象
创建对象: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(
{
...
});