If any language should have been name after a snake, Javascript should have. It's a slippery little thing I tell you. It slithers and slides and wraps around you. And you have to work like a snake charmer to coax it out of its basket and make it play nicely without biting you.
Take, for example the simple idea of passing a variable by ref or by val. Javascript's snakey little implementation means that if you are passing a variable then you'll never pass it by ref. However if you are passing an object, then, hey presto, by ref it is. Bear witness:
var globalVar;
var anObj = function() {
this.value = "default value";
}
function changeValue(arg){
arg.value = "Changed by function";
}
function changeUp(arg) {
arg = "Changed";
}
globalVar = "global";
console.log(globalVar);
changeUp(globalVar);
console.log(globalVar);
var myObj = new anObj();
console.log(myObj.value);
changeValue(myObj);
console.log(myObj.value);
Yep, slap that into some html and run it with your Chrome developer console up and about and you will see something like this:
global global default value Changed by function
Yes sir! that Javascript. She's a tricky little snake of a language. Nothing at all like Python. Nothing at all like Asp. Nope, it's in a league of its own.
Comments
Post a Comment