1. 引入
1.1 讨论 window 和 return,引出插件开发
// 1. 普通函数 return functionfunction test() { var a = 1; function add () { a++; console.log(a); } return add;}var add = test();add();add();add();// 2. 普通函数 function 赋值给 windowfunction test() { var a = 1; function add () { a++; console.log(a); } window.add1 = add;}test();add1();add1();add1();// 3. 立即执行函数 return functionvar add2 = (function() { var a = 1; function add () { a++; console.log(a); } return add;})();add2();add2();add2();// 4. 立即执行函数 function 赋值给window(function() { var a = 1; function add () { a++; console.log(a); } window.add3 = add;})();add3();add3();add3();
1.2 插件开发
(function() { function Test() { } window.Test = Test;})();var test = new Test();
使用立即执行函数 隔离全局作用域,防止变量污染全局作用域
1.3 练习
// 写一个插件,任意传两个数字,调用插件内部方法可进行加减乘除功能(function() { function Calc(opt) { this.x = opt.firstNum; this.y = opt.secondNum; } Calc.prototype.add = function(){ console.log(this.x + this.y) } Calc.prototype.subtract = function(){ console.log(this.x - this.y) } Calc.prototype.multiply = function(){ console.log(this.x * this.y) } Calc.prototype.divide = function(){ console.log(this.x / this.y) } window.Calc = Calc;})();var calc = new Calc({ firstNum: 456, secondNum: 567});calc.add();