We have seen about the need for learning Javascript ahead in one of the previous post. Is the development in Javascript easy? Absolutely not. Lets see one simple scenario in this post along with other scenarios posted earlier.
http://joymonscode.blogspot.com/2015/08/multiple-ways-to-iterate-array-in.html
We can see that when the object was created it has no function named Add. We added it later. Calling the function as below will give is the sum of 2 numbers passed into it.
This works great. But think about a big project where 100 developers are working on. Anybody can write code to change the value of Add key / property of mathLib as follows. This can even happen after the real Add function is added. Lets consider the below click event handler
The above is absolutely valid in js and it will change the meaning of earlier add function. Now think about your code calling the add method.
Really!. Yes this is just an example. These kind of things can happen at any time in our Javascript code, if we don't take development seriously. That being said don't just jump into Javascript without proper understanding. It was kind of OK if we jump into Java or C# without much preparation because language + compiler has so many things to get a low quality developer moving.
The property is kind of called Homoiconicity of language in theory. Real homoiconicity means the program syntax and data structure are same. But here its more to program as data.
http://jsfiddle.net/joygeorgek/Lwqnpqvx/1/
Welcome to the dynamic world of Javascript.
http://joymonscode.blogspot.com/2015/08/multiple-ways-to-iterate-array-in.html
Functions everywhere ie Functional Javascript
Javascript runs on key value pair mechanism. Even functions can be added to as value to a key. Since everything runs based on key value pairs and we can change the value of a key at any time including run-time, the environment gets really dynamic.
Look at the below code.
Look at the below code.
var mathLib = {};
mathLib.Add = function (n1, n2) { return n1 + n2; };
We can see that when the object was created it has no function named Add. We added it later. Calling the function as below will give is the sum of 2 numbers passed into it.
var sum = mathLib.Add(2, 3);
return alert(sum); //Displays 5
This works great. But think about a big project where 100 developers are working on. Anybody can write code to change the value of Add key / property of mathLib as follows. This can even happen after the real Add function is added. Lets consider the below click event handler
function alter_mathLibAdd_Click() { mathLib.Add = function (n1, n2) { return n1 * n2 }; }
The above is absolutely valid in js and it will change the meaning of earlier add function. Now think about your code calling the add method.
var sum = mathLib.Add(2, 3); return alert(sum);//Displays 6
Really!. Yes this is just an example. These kind of things can happen at any time in our Javascript code, if we don't take development seriously. That being said don't just jump into Javascript without proper understanding. It was kind of OK if we jump into Java or C# without much preparation because language + compiler has so many things to get a low quality developer moving.
The property is kind of called Homoiconicity of language in theory. Real homoiconicity means the program syntax and data structure are same. But here its more to program as data.
http://jsfiddle.net/joygeorgek/Lwqnpqvx/1/
Welcome to the dynamic world of Javascript.
No comments:
Post a Comment