摘要: 就私有静态成员而言,指的是成员具有如下属性:1.以同一个构造函数创建的所有对象共享该成员。2.构造函数外部不可访问该成员。//构造函数var Gadget = (function(){//静态变量/属性var counter = 0, NewGadGet; NewGadget = fun... 阅读全文
posted @ 2014-08-06 14:47 ZeKun 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 公共静态成员在javascript中并没有特殊语法来表示静态成员。但是可以通过使用构造函数向其添加属性这种方式。//构造函数var Gadget = function(){};//静态方法Gadget.isShiny = function(){ return 'you bet';}//向该原型添加... 阅读全文
posted @ 2014-08-06 14:00 ZeKun 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 沙箱模式解决了命名空间模式的如下几个缺点:1.对单个全局变量的依赖变成了应用程序的全局变量依赖。在命名空间模式中,是没有办法使同一个应用程序或库的2个版本运行在同一个页面中。2.对这种以点分割的名字来说,需要输入更长的字符,并且在运行时需要解析更长的时间,比如MYAPP.utilities.arra... 阅读全文
posted @ 2014-08-06 10:28 ZeKun 阅读(3879) 评论(1) 推荐(2) 编辑
摘要: var Person = (function(){ var Constr; Constr = function(){ this.name = 'carl'; } Constr.prototype = { constructor : Constr, ... 阅读全文
posted @ 2014-08-05 15:59 ZeKun 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 目前模块模式得到了广泛应用,因为它提供了结构化的思想并且有助于组织日益增长的代码。模块模式提供了一种创建自包含非耦合代码片段有利工具,可以将它视为黑盒功能。板栗:var array = (function(){ //私有变量 var array_string = '[object Array]'... 阅读全文
posted @ 2014-08-05 15:38 ZeKun 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 揭示模式可用于将私有方法暴露为公共方法。当为了对象的运转而将所有功能放置在一个对象中以及想尽可能地保护该对象,这种揭示模式就非常有用。板栗:var myarray;(function(){ var astr = "[object Array]", toString = Object.protot... 阅读全文
posted @ 2014-08-05 15:02 ZeKun 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 命名空间:命名空间有助于减少程序中所需要的全局变量的数量,并且同时还有助于避免命名冲突或过长的名字前缀。板栗:var MYAPP = MYAPP || {}; MYAPP.namespace = function(ns_string){ var parts = ns_string.split('... 阅读全文
posted @ 2014-08-05 14:27 ZeKun 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 如果有时候我们忘记对构造函数使用new的话,构造函数的this将指向windowfunction Person(){ this.name = 'Julie';}var good_moring = Person();console.log(good_moring); //输出undefinedcon... 阅读全文
posted @ 2014-08-05 14:10 ZeKun 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 惰性函数:所谓惰性函数就是创建了一个新函数并且将其分配给保存了另外函数的同一个变量,就以一个新函数覆盖了旧函数。某种程度上,回收了旧函数指针以指向一个新函数。 板栗:var scareMe = function(){ console.log('Boo'); scareMe = functi... 阅读全文
posted @ 2014-08-05 13:56 ZeKun 阅读(202) 评论(0) 推荐(0) 编辑
摘要: function curry(fn){ var slice = Array.prototype.slice; var arr = slice.call(arguments,1); return function(){ var newArr = slice.call(arguments);... 阅读全文
posted @ 2014-08-05 13:41 ZeKun 阅读(145) 评论(0) 推荐(0) 编辑