Я столкнулся с двумя разными способами определения/названия объектов и функций в JavaScript, которые сначала проверяют наличие имени перед его использованием. Проблема в том, что я не знаю, какой из них лучше (с точки зрения скорости и удобства использования), и невозможно использовать логические операторы в поиске Google, чтобы понять это.Условия определения объекта JavaScript - что лучше?
Первый я вижу чаще:
var myNewObject = myNewObject ? myNewObject : function() {
// Code goes here.
};
Второй кажется более кратким, но я только видел его один или два места, так что я не знаю, если есть стандарт или даже имя для него:
var myNewObject = myNewObject || function() {
// Code goes here.
};
Функционально, они оба делают то же самое, и они оба, кажется, работают в любом браузере, я могу проверить в Мой вопрос заключается в следующем - что лучше и почему.? Кроме того, хотя первое определение по существу является однострочным условным ... то, что называется вторым?
второй более распространенный имхо. По крайней мере, для людей, которые знают язык ... – galambalazs
Прохладный, кто-нибудь знает, работает ли это также с прототипом: т. Е. Array.prototype.forEach = Array.prototype.forEach || function (... Я спрашиваю, потому что на веб-сайте Mozilla они используют нормальный if (! Array.prototype.forEach) Array.prototype.forEach = function (... –
@Marco Demaio Следуя той же логике, она должна * работать Я предлагаю похлопывать его по тестовому сценарию и видеть, если это так.Вы все еще определяете метод объекта ... он просто находится в определенном пространстве имен уже. – EAMann