各种主流语言一般都讲究个面向对象,虽然不知道面向对象的各种好处是不是向介绍里面鼓吹的那样,但程序猿可能都习惯了。
所以一般程序猿们用过一段时间 JavaScript 后,就会感觉一片恶心,享受便利的同时又总是吐槽几名不爽。那让JavaScript面向对象是不是会爽点?
//最常见的
var obj={
v:123,
fn:function(){
}
}
obj.fn(obj.v);
//有人也喜欢这样
var obj={};
obj.v=123;
obj.fn=function(){};
obj.fn(obj.v);
//上两种用的比较多,一般把这个对象当作页面上的一个全局变量使用。
//如果是相同特征的不同对象有就可以这样
function Preson(name,age){
this.name=name;
this.age=age;
}
var p1=new Preson('aaaaa',11);
var p2=new Preson('bbbbb',22);
alert(p1.name);
alert(p2 instanceof Preson);
//这种相对来说看到的比较少,其实也并不是用的少,因为使用prototype改进后代码看上去会舒服很多,很多人也就直接COPY了。
//这种写法就比较常见
function Preson(name,age){
this._init(name,age);
}
Preson.prototype={
name:"",
age:0,
_init:function(){
this.name=name;
this.age=age;
},
say:function(){
alert(this.name);
}
}
var p1=new Preson('aaaaa',11);
p1.say();
先就这样理解了,当然,使JS看起来面向对象的方法还有很多,不过大多是怪招邪招,长相怪异且没什么用,
建议和Java一样,需要new 后才能用的最好使用prototype方式,直接可以用的,只需要归类的var个大括号就行了