Mi sono imbattuto in due modi diversi per definire/nominare oggetti e funzioni in JavaScript che prima controllano l'esistenza del nome prima di usarlo. Il problema è che non so quale sia il migliore (dal punto di vista della velocità e dell'usabilità) ed è impossibile utilizzare gli operatori booleani in una ricerca su Google per capirlo.Condizioni condizionali di definizione di oggetti JavaScript - che è meglio?
Il primo che vedo più spesso:
var myNewObject = myNewObject ? myNewObject : function() {
// Code goes here.
};
Il secondo sembra più conciso, ma ho visto solo uno o due posti, quindi non so se c'è uno standard o addirittura un nome per questo:
var myNewObject = myNewObject || function() {
// Code goes here.
};
punto di vista funzionale, entrambi fanno la stessa cosa ed entrambi sembrano funzionare in tutti i browser posso testare in mia domanda è questa - che è meglio e perché.? Inoltre, mentre la prima definizione è essenzialmente un condizionale a linea singola ... come si chiama il secondo?
il secondo è più comune imho. Almeno per le persone che conoscono la lingua ... – galambalazs
Fantastico, qualcuno sa se questo funziona anche con il prototipo: ad esempio Array.prototype.forEach = Array.prototype.forOach || funzione (... ti sto chiedendo perché sul sito Mozilla usano un normale if (! Array.prototype.for Anyach) Array.prototype.forEach = function (... –
@Marco Demaio Seguendo la stessa logica * dovrebbe * funzionare Suggerisco di schiaffeggiarlo in uno script di test e vedere se lo fa.Stai ancora definendo un metodo di oggetto ... si trova già in uno spazio dei nomi specifico. – EAMann