В динамическом языке программирования JavaScript истинно следующее выражение:
obj[expressionResultingInMemberName] == obj.memberName
Поэтому вместо конструкции:
if (condition) {
myObj.method1(someArg);
} else {
myObj.method2(someArg);
}
рекомендуется использовать конструкцию:
myObj[condition ? 'method1' : 'method2'](someArg);
Еще примеры:
object['propertyName'] // => object.propertyName
object['methodName'](arg1) // => object.methodName(arg1)
// Call show() or hide(), depending on shouldBeVisible
element[shouldBeVisible ? 'show' : 'hide']();
// Avoid "heavy" animations on IE to favor immediate reflow
// (assumes we've got a properly set isIE variable)
element[isIE ? 'simpleEffect' : 'complexEffect']();
element[(enable ? 'add' : 'remove') + 'ClassName']('enabled');
var love = { firstName: 'Élodie', lastName: 'Porteneuve' };
var useFirstName = true;
alert(love[useFirstName ? 'firstName' : 'lastName']); // => "Élodie"
obj[expressionResultingInMemberName] == obj.memberName
Поэтому вместо конструкции:
if (condition) {
myObj.method1(someArg);
} else {
myObj.method2(someArg);
}
рекомендуется использовать конструкцию:
myObj[condition ? 'method1' : 'method2'](someArg);
Еще примеры:
object['propertyName'] // => object.propertyName
object['methodName'](arg1) // => object.methodName(arg1)
// Call show() or hide(), depending on shouldBeVisible
element[shouldBeVisible ? 'show' : 'hide']();
// Avoid "heavy" animations on IE to favor immediate reflow
// (assumes we've got a properly set isIE variable)
element[isIE ? 'simpleEffect' : 'complexEffect']();
element[(enable ? 'add' : 'remove') + 'ClassName']('enabled');
var love = { firstName: 'Élodie', lastName: 'Porteneuve' };
var useFirstName = true;
alert(love[useFirstName ? 'firstName' : 'lastName']); // => "Élodie"