Оператор запятая. Не возбраняется?
Короче, можно так писать?
this.getElement = function() { return this.$element || (this.$init(), this.$element); }; Этот же код в традиционном стиле: this.getElement = function() { if (!this.$element) this.$init(); return this.$element; }; Какой вариант лучше и нет ли проблем с запятой (где-то видел запятую как хак для установки scope чтоли (для eval'а в каком-то браузере) - так и не допер что делает эта запятая)? |
И еще такой вариант:
function Bla() { this.getElement = function() { this.$init(); delete this.getElement; return this.getElement(); }; } (function(){ this.$init = function() { this.$element = document.createElement("div"); }; this.getElement = function() { return this.$element; }; }).call(Bla.prototype); Насколько он оправдан? |
Если сжимать код, могут быть проблемы. По крайней мере в 1 и 2 случае.
|
и вообще это ужасный стиль и не очевидный, никогда так не делай
Gozar, кот, как тебе мой новый FRP стайл? Все что объявлено без var попадает в $scope. Все что приравнивается в скобочках воспринимается как ячейка. Круто? ![]() |
Цитата:
Мне нравится. Неуж-то так плохо? Третий вариант нигде не встречал. Но помоему логичный, но смотрится жутко, особенно delete. Maxmaxmaximus3, убейся, пожалуйста. |
Цитата:
|
Цитата:
Цитата:
alert(function() { return 0 || ('a', 'b'); }()); alert(function() { return 1 || ('a', 'b'); }()); Очевидно что нет. Цитата:
this.$element || this.$init() |
Цитата:
тут же ведь используют вот это alert((1,2,3,4,5)); Вопрос только в целесообразности этого... ;) Цитата:
|
Цитата:
function bar() {console.log('foo'); return 'foo';} function foo() {console.log('bar'); return 'bar';} var x = (bar(), foo()); alert(x); |
Цитата:
|
Часовой пояс GMT +3, время: 13:17. |