Оператор запятая. Не возбраняется?
Короче, можно так писать?
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, время: 14:45. |