javascript中的对象

创建对象:

function MyObject(name,title){

this.name = name;

this.title = title;

this.getName = function (){

return this.title;

};

}

 

var obj = new MyObject("jack","C# Dev");

var name = obj.getName();

以上的创建方法用的是实例特性,实例方法,这样每份实例都会有特性和方法的拷贝,特别影响性能。可以考虑用原型特性和原型方法,这样在内存中只有一份特性和方法来“共用”,千万别跟java C++的静态方法搞混淆:

function MyObject(){

 

}

 

MyObject.prototype.name = name;

MyObject.prototype.title = title;

MyObject.prototype.getName = function (){

return this.title;

};

 

当然,或许还有人想在js中使用类似java静态方法那种特性,可以使用类方法:

function MyObject(name){

 this.name = name;

}

 

 

MyObject.show = function (){

alert("Fuck");

};

 

调用:MyObject.show();

 

总结:

1、对象方法理解就很简单了,主要是如果类生成一个实例,那么该实例就能使用该方法
2、类方法,不需要通过生成实例就可以使用的方法
3、原型方法主要是用来对JS已有的系统对象进行扩展而生的,例如Array数组没有什么方法,你可以为其增加原型方法,那么创建的数组就拥有了该方法。原型方法也一般用于对象实例共享,比如Person.prototype.sayName=function(){console.log(this.name);};在原型上面添加该方法,就能实现共享。这样就不用每一次初始化一个实例的时候,为其分配相应的内存了。

 

posted @ 2016-03-20 10:09  foo__hack  阅读(2303)  评论(0编辑  收藏  举报