1. 引入
1.1 讨论 window 和 return,引出插件开发
// 1. 普通函数 return function
function test() {
var a = 1;
function add () {
a++;
console.log(a);
}
return add;
}
var add = test();
add();
add();
add();
// 2. 普通函数 function 赋值给 window
function test() {
var a = 1;
function add () {
a++;
console.log(a);
}
window.add1 = add;
}
test();
add1();
add1();
add1();
// 3. 立即执行函数 return function
var 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();