JavaScript设计模式之二:百变的JavaScript

来源:互联网 发布:html5网页编程软件 编辑:程序博客网 时间:2024/05/22 13:12

JavaScript的多变性是它的特点之一,而众多特点中,闭包与对象的易变性是它与其他面向对象语言差别最大的地方,本文就特别说明以下这两个特点闭包

        闭包

由于在JavaScript中,函数(Function)是一类特殊的对象,既可以存储值,也可以与其他函数作为变量通信。因此函数为JavaScript提供了充分的灵活性,而闭包就可以理解为匿名函数的即时执行,以下是一个闭包的实例:

/* 匿名函数,即时执行 */(function() {var a = 10;var b = 2;alert(a * b);})();

        可以看到闭包性质的函数在结尾都有一个双括号,这表示该函数立即执行,以下是一个执行传参的闭包:

(function(a,b) {alert(a * b);})(10, 2);

       以下是闭包函数返回值并获取的实例:

var value = (function(a,b) {return a * b;})(10, 2);

      最有趣的是闭包内部实现外部函数,以下是实例:

var fn;(function() {var a = 10;var b = 2;fn = function() { return a * b; };})();fn();

       函数可变性

   在JavaScript中任何都是对象,而且任何对象都是可变的,以下是一个实例:
function displayError(message) {displayError.numTimesExecuted++;alert(message);};displayError.numTimesExecuted = 0;



原创粉丝点击