After coming across Douglas Crockford's views on class-free OOP, and doing away with new and this in Javascript I tried defining an object with its own variable and function, and returning it in a javascript object, as shown below:
var newObj = function (name, lang){
var obj = {
"name":name,
"greeter":greeter
};
return obj;
};
function greeter (lang){
switch (lang){
case "en":return "hi";
case "es":return "hola";
default: return "hello";
}
}
//and finally, use the object
var name = "john", lang = "es";
var obj = newObj(name, lang);
console.log(obj.name);
console.log(obj.greeter(lang));
I know this code works in NodeJS, but I wonder if it is actually a good idea to do it this way. More specifically, are there any implications/consequences to returning functions within a javascript object that I should be aware of?
true
,false
,null
, numbers, strings, arrays, and maps.var obj = { "name":name, "greeter":greeter };