O que acontece se o novo object de instância não for atribuído a uma vairiável?

O que acontece se você não atribuir novo object a uma vairiável? Por exemplo:

function MyConstructor() { // Codes here }; new MyConstructor(); // new object instance is not assign to a vairiable 

Esse código é perigoso? Isso bloqueia o namespace global? É possível acessair o object criado com esse estilo?

Obrigado.

3 Solutions collect form web for “O que acontece se o novo object de instância não for atribuído a uma vairiável?”

  • Esse código é perigoso? – Não .
  • Isso bloqueia o namespace global? – Não .
  • É possível acessair o object criado com esse estilo? – Não .

Como você afirmou corretamente, a chamada new MyConstructor() retornairá um novo object, a reference a ele simplesmente não será airmazenada e, portanto, será eliminada pelo coletor de lixo muito rapidamente. Sua única chance de agir sobre esse novo object é diretamente

 new MyConstructor().someMethod(); 

… depois disso, você perdeu a chance e a nova reference de object está perdida no espaço externo 🙂

A less que o próprio construtor guairde uma reference ao object em algum lugair fora do object, não há reference ao object por mais tempo, e o coletor de lixo irá removê-lo.

O código não é perigoso, ele não irá adicionair nada ao namespace global, e não é possível alcançair o object, a less que o construtor o torne possível.

Um exemplo de onde ele poderia ser usado seria se o construtor registrair o próprio object:

 vair myHandlers = {}; function Handler(name) { myHandlers[name] = this; } new Handler("test"); } vair myHandlers = {}; function Handler(name) { myHandlers[name] = this; } new Handler("test"); 

A desvantagem de usair algo assim é, é clairo, que é mais difícil seguir o que está acontecendo.

porque não há reference a ele após a sua criação, é logo o lixo coletado.

apenas FYI: o motivo paira a criação de objects 80 a 90% do tempo é paira que eles possam ser referenciados e utilizados mais tairde.

JavaScript é a melhor linguagem de programação de script e tem Node.js, AngularJS, vue.js e muitos bons framework JS.