2013-06-24 2 views
0

Рассмотрим следующий код JavaScript:как создать новый объект из конструктора существующего объекта в JavaScript

if (oo instanceof MyType) { 
    var newObj = new oo.constructor; 

    // suppose the following check should be ok but it is not 
    // newObj should have same constructor as its original oo. 

    if (newObj instanceof MyType) { 
     // do something 
    } 
} 

Я не могу достичь «сделать что-то». Что не так?

+2

oo.constr ** а ** CTOR()? – NicoSantangelo

+1

Я изменил 'constrActor' на' constrUctor', и это нормально. –

+1

Я думаю, что он имел в виду constrictor ... – elclanrs

ответ

3

Ну, просто потому, что вы не можете прочитать комментарии, у вас есть опечатка в constructor (это говорит constractor).

Это работает:

function MyType() {} 
oo = new MyType(); 

if(oo instanceof MyType) 
    { 
     var newObj = new oo.constructor(); // The mistake was in this line 

     if(newObj instanceof MyType) 
     { 
      console.log("a contractor was killed by a constrictor while constructing"); 
     } 
    } 
+0

typo не существует post вопрос редактирование: S –