1、通过Object对象实例化,然后在外部添加属性/方法(原始模式)
var obj = new Object(); obj.v = ‘‘; obj.func = function() { //... }
2、通过构造函数实例化,然后在外部通过prototype添加属性,或者在构造函数里面直接定义属性
(只在外部定义属性,是原型模式,只在内部定义属性,为构造函数模式,内外都定义,即混合原型/构造函数模式)
//原型模式 function obj() { } obj.v = ‘‘; obj.prototype.v2 = ‘‘; var instance = new obj();
//构造函数模式 function obj() { var v = ‘‘; var func = function() { //... } } var instance = new obj();
//混合原型/构造函数模式 function obj() { var v = ‘‘; var func = function() { //... } } obj.prototype.v2 = ‘‘; obj.prototype.func2 = function() { //... } var instance = new obj();
3、通过JSON方式,使用对象字面量,直接在里面定义属性(呃,确切的说,我不知道这么方式怎么来的,我还没搞懂“字面量”)
var obj = { v : ‘‘, func : function() { //... } }
4、定义一个函数,在函数里面通过方式1定义对象,最后返回对象变量
(外部调用函数时,函数名前加new关键字即为混合工厂模式,不加new,即工厂模式)
function getObj() { var obj = new Object(); obj.v = ‘‘; obj.func = function() { //... } return obj; } //工厂模式 var obj = getObj(); //混合工厂模式 var obj = new getObj();