很容易理解的js对象代码模版, 只是不知道如何克隆一个新的对象

50次阅读

<script>

var DED = function() {

	var pvar=3;

	function private_method() {

		// do stuff here
		pvar = 5;

	}

	return {

		method_1 : function() {

			// do stuff here
			private_method();
			alert(pvar);
			pvar = 6;
		},

		method_2 : function() {

			// do stuff here
			alert(pvar);

		}

	};

}();

DED.method_1();
DED.method_2();
</script>

chenge

var a = new DED(),
    b = new DED();
a.method_1();
b.method_1();

yanyaoer

精简后的代码就是

var DED = ( function(){ return {} ; }() );

说明它返回的是对象,并不是函数 所以楼上的应该漏看了那个括号

DED; //是对象并不是函数

复制对象的话 可以采用以下的代码

 function object(o) {
    function F() {}
    F.prototype = o;
    return new F();
  }
var DED1 = object(DED);
var DED2 = object(DED);
DED1.method_1();

当然也可以采用拷贝属性的方式

//至于这种方式 因为JavaScript是引用传递 所以会造成原有的函数也会被修改
var DED1 = DED;
DED1.method_1 = function(){alert("34535");};
DED.method_1();

qpwoeiru96

本身就是一个单体,如何克隆?pvar永远指向DED的内部

hellolibo

正文完