J'ai travaillé sur ma propre bibliothèque javascript, kis-js. J'ai récemment converti à travailler avec des sélecteurs de dom comme jQuery, mais à cause de javascript copie uniquement des références que je cette question:Comment créer une instance unique d'un objet en javascript?
Si vous appelez $_
deux fois, la deuxième fois que vous l'appelez change le résultat du premier appel.
Test Code:
<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>
est ici la source à la bibliothèque: https://github.com/timw4mail/kis-js/blob/master/kis.js
Je pensais que je devais créer une copie en profondeur de l'objet constructeur, mais je ne suis pas tout à fait sûr de savoir comment pour y arriver.
Edit:
J'ai créé une fonction de copie profonde:
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();
};
Comment puis-je utiliser cela pour que je peux prolonger mon objet construit?
['jQuery.extend'] (http://api.jquery.com/jQuery.extend) peut copier des objets JavaScript superficiels ou profonds. –
@Paolo Moretti Le but de la bibliothèque est de ne pas utiliser jQuery. – timw4mail
@ timw4mail il peut vous apprendre. –