我一直在研究自己的JavaScript庫kis-js。最近,我將它轉換與DOM選擇像jQuery的工作,但因爲JavaScript只複製引用我有這樣的問題:如何在JavaScript中創建對象的唯一實例?
如果你打電話$_
兩次,你怎麼稱呼它第二次改變第一調用的結果。
測試代碼:
<h1>Heading</h1>
<a>Anchor</a>
<script>
var anchor = $_("a");
var heading = $_("h1");
console.log(anchor.el); // should be <a>, but it's <h1>
</script>
這裏的源庫:https://github.com/timw4mail/kis-js/blob/master/kis.js
我想我需要創建構造對象的深拷貝,但我不太清楚如何去做那件事。
編輯:
我創建了一個深深的複製功能:
dcopy = function(obj)
{
var type, f;
if(obj == null)
{
return;
}
if(typeof Object.create !== "undefined")
{
return Object.create(obj);
}
var type = typeof obj;
if(type !== "object" && type !== "function")
{
return;
}
var f = function(){};
f.prototype = obj;
return new f();
};
如何使用,這樣我可以延長我構造的對象?
['jQuery.extend'](http://api.jquery.com/jQuery.extend)可以淺/深層複製JavaScript對象。 –
@Paolo Moretti庫的全部內容是不使用jQuery。 – timw4mail
@ timw4mail它可以教你。 –