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);};在原型上面添加该方法,就能实现共享。这样就不用每一次初始化一个实例的时候,为其分配相应的内存了。