// 声明完函数以后,立即执行该函数 (function () { console.log('watch out!'); } ()); //这种方式声明的函数,也可以立即执行 !function () { console.log('watch out!'); } (); // 如下方式也都可以哦 ~function () { /* code */ } (); -function () { /* code */ } (); +function () { /* code */ } ();
({ // 这里你可以定义常量,设置其它值 maxwidth: 600, maxheight: 400, // 当然也可以定义utility方法 gimmeMax: function () { return this.maxwidth + "x" + this.maxheight; }, // 初始化 init: function () { console.log(this.gimmeMax()); // 更多代码... } }).init(); // 这样就开始初始化咯
var utils = { addListener: function (el, type, fn) { if (typeof window.addEventListener === 'function') { el.addEventListener(type, fn, false); } else if (typeof document.attachEvent !== 'undefined') { el.attachEvent('on' + type, fn); } else { el['on' + type] = fn; } }, removeListener: function (el, type, fn) { } };
var utils = { addListener: null, removeListener: null };
if (typeof window.addEventListener === 'function') { utils.addListener = function (el, type, fn) { el.addEventListener(type, fn, false); }; } else if (typeof document.attachEvent !== 'undefined') { // IE utils.addListener = function (el, type, fn) { el.attachEvent('on' + type, fn); }; utils.removeListener = function (el, type, fn) { el.detachEvent('on' + type, fn); }; } else { // 其它旧浏览器 utils.addListener = function (el, type, fn) { el['on' + type] = fn; }; utils.removeListener = function (el, type, fn) { el['on' + type] = null; }; }
var scareMe = function () { alert("Boo!"); scareMe = function () { alert("Double boo!"); }; };
// 1. 添加新属性 scareMe.property = "properly"; // 2. scareMe赋与一个新值 var prank = scareMe; // 3. 作为一个方法调用 var spooky = { boo: scareMe }; // 使用新变量名称进行调用 prank(); // "Boo!" prank(); // "Boo!" console.log(prank.property); // "properly" // 使用方法进行调用 spooky.boo(); // "Boo!" spooky.boo(); // "Boo!" console.log(spooky.boo.property); // "properly"
// 使用自声明函数 scareMe(); // Double boo! scareMe(); // Double boo! console.log(scareMe.property); // undefined
var myFunc = function (param) { if (!myFunc.cache[param]) { var result = {}; // ... 复杂操作 ... myFunc.cache[param] = result; } return myFunc.cache[param]; }; // cache 存储 myFunc.cache = {};
var myFunc = function (param) { if (!myFunc.cache.hasOwnProperty(param)) { var result = {}; // ... 复杂操作 ... myFunc.cache[param] = result; } return myFunc.cache[param]; }; // cache 存储 myFunc.cache = {};
var myFunc = function () { var cachekey = JSON.stringify(Array.prototype.slice.call(arguments)), result; if (!myFunc.cache[cachekey]) { result = {}; // ... 复杂操作 ... myFunc.cache[cachekey] = result; } return myFunc.cache[cachekey]; }; // cache 存储 myFunc.cache = {};
var myFunc = function (param) { var f = arguments.callee, result; if (!f.cache[param]) { result = {}; // ... 复杂操作 ... f.cache[param] = result; } return f.cache[param]; }; // cache 存储 myFunc.cache = {};