备注:JavaScript中没有类class的概念,一般把原型对象看作类
1. 工厂方法--使用new Object创建对象并添加相关属性
var Obj = new Object;
Obj.name = 'sun';
Obj.showName = function() {
alert('this.name');
}
2. 使用构造函数来定义类(原型对象)
function Obj(name) {
this.name = name;
this.showName = function () {
alert(this.name);
}
}
var obj1 = new Obj('xiaoxiao');
var obj2 = new Obj('lili');
3. 使用prototype
var Obj = function () {}
Obj.prototype.name = 'me';
Obj.prototype.showName = function () {
alert(this.name);
}
var obj1 = new Obj();
var obj2 = new Obj();
4. 构造函数及原型混合方式
var Obj = function (name) {
this.name = name;
this.flag = new Array('A', 'B');
}
Obj.prototype = {
showName : function () {
alert(this.name);
}
}
var obj1 = new Obj();
var obj2 = new Obj();
obj1.flag.push('C');
alert(obj1.flag); // A,B,C
alert(obj2.flag); //A,B
5. 动态原型方式(。。。)
备注:
定义类:
function 类名(){
}
----》
function 类名(){
this.属性名;//公开属性(可以通过对象名.属性名来访问)
var 属性名;//私有属性(只能通过对象的内部函数来访问)
}