Chapter 2 - named paramters
by Denise Nepraunig
HTML
<link rel="stylesheet" href="http://code.jquery.com/qunit/qunit-1.14.0.css">
<script src="http://code.jquery.com/qunit/qunit-1.14.0.js"></script>
<div id="qunit"></div>
<div id="qunit-fixture"></div>
JavaScript
// Programming JavaScript Applications
// Chapter 2
// named parameters in functions
var userProto = {
name: '',
email: '',
alias: '',
showInSearch: true,
colorScheme: 'light'
};
// here the example how you should not do it!
function createUser(name, email, alias, showInSearch, colorScheme) {
return {
name : name || userProto.name,
email: email || userProto.email,
alias: alias || userProto.alias,
showInSearch: showInSearch || userProto.showInSearch,
colorScheme: colorScheme || userProto.colorScheme
}
}
QUnit.test("User account creation", function(assert) {
var newUser = createUser('Denise', '', '', '', 'dark');
QUnit.equal(newUser.colorScheme, 'dark', 'storing colorScheme works');
});
// here is a better example
function createUser2(options) {
return $.extend({}, userProto, options);
}
var newUser2 = createUser2({
name: 'Mike',
showInSearch: false
});
QUnit.test("User account creation with extend", function(assert) {
QUnit.equal(newUser2.showInSearch, false, "extend worked!");
});