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

chenge
  • 324
<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>
回复
阅读 3.9k
3 个回答
var a = new DED(),
    b = new DED();
a.method_1();
b.method_1();

精简后的代码就是

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();

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏