2. Define a function function f(msg) { alert(msg); } // override function f(msg1, msg2) { alert(msg1 + ' ' + msg2); } // arguments keyword function f() { for (var i = 0; i < arguments.length; i ++ ) { alert(arguments[i]); } } // call f();
3. Define a class varMyAlert = function (msg) { this.msg = msg; // define a method this.f = function () { alert('Hello ' + this.msg); }; }; varmyalert = new MyAlert('Mary'); // call f method myalert.f();
4. Define a class by prototype varMyAlert = function (msg) { this.msg = msg; }; // use prototype to define a method MyAlert.prototype.f = function () { alert(this.msg); }; prototype definition uses less memory
5. Built-in types Number varnum = new Number(2); or varnum= 2; Object varobj = new Object(); or varobj = {}; Array vararr = new Array(1, 2, 3); or vararr = [1, 2, 3]; String varstr = new String('Hello'); or varstr = 'Hello'; Regular expression var regex = new RegExp('*'); or varregex = /*/; etc... - w3schools.com/js
7. Define a function (more) // goes to top of current scope function f(msg) { alert(msg); } // assignment varf = function (msg) { alert(msg); }; // use new keyword var f = new Function('msg', 'alert(msg);');
8. Function prototype Function.prototype.f= function () { alert(this.toString()); }; var f = function () { alert('This is a function.'); }; // does NOT alert "This is a function." f.f();
9. Anonymous function (function (msg) { alert('This is ' + msg); })('anonymous'); (function (msg) { // this line does NOT get executed alert('This is ' + msg); }).f();
10. Callback function f(callback) { callback(); } function dosomething() { alert('This is a callback function.'); } f(dosomething);
11. Return a function function f() { varnum= 1; // num can be accessed in inner function varinnerf = function () { alert( 'inner function called, num: ' + num); }; return innerf; } // f2 now is a function varf2 = f(); f2();
12. Closure function f() { varnum= 1; // num can be accessed in inner function varinnerf = function () { num ++; alert( 'inner function called, num: ' + num ); }; return innerf; } // f2 now is a function var f2 = f(); f2();
13. Summary Funtion is a object used to create class can be passed as parameter can be returned creates a closure when defined in another function