Tobias : javascript prototype

Beitrag lesen

hi peter,

echt sehr cool! thx a lot!

die neue funktionalität wird aber nur auf das object vererbt dass ich grad parse.

-> var obj = new Con();
-> for (methodName in obj) {.....

oder seh ich das falsch?

wenn nein:

wie vererbe ich die änderung auf alle objekte der klasse "Con"?
oder wie komme ich an all die objekte ran die VORHER erzeugt wurden?

hier mein test case:

// **********************************

var Con = function()
{
this.show_1 = function(text)
  {
  alert("none prototype method "show_1"");
  };
};
Con.prototype.show_2 = function(text)
{
alert("prototype method "show_2"");
};

var obj_old = new Con();

// ab hier "kenn" ich das script
var obj = new Con();
var objectFct, prototypeFct;

for (methodName in obj)
{
  if ((typeof obj[methodName] == "function"))
    {
      if(!obj.constructor.prototype[methodName])
        {
          objMethodStr = obj[methodName].toString();
          Con.prototype.show_1 = function(text)
            {
            objMethodStr();
            };
        }

prototypeFct = obj.constructor.prototype[methodName];
      obj[methodName] = function()
        {
        prototypeFct();
        alert("---> saved!");
        };
 }
}

var obj_new = new Con();

</script>

</head>

<body>
<a href='javascript:obj_old.show_1("test")'>test 1 old</a><br>
<a href='javascript:obj_old.show_2("test")'>test 2 old</a><br>

<a href='javascript:obj.show_1("test")'>test 1</a><br>
<a href='javascript:obj.show_2("test")'>test 2</a><br>

<a href='javascript:obj_new.show_1("test")'>test 1 new</a><br>
<a href='javascript:obj_new.show_2("test")'>test 2 new</a><br>
</body>
</html>