摘要:
js日志组件~~ 1 function Logger(level) { 2 if (!(this instanceof Logger)) { 3 return new Logger(); 4 } 5 var ERROR = 1; 6 var INFO = 2; 7 var DEBUG = 3; 8 阅读全文
摘要:
上面这段代码中,函数声明在函数调用下,为什么会调用成功呢? hello(); function hello(){alert("hello");} 因为js在编译阶段预解析,将上面这段代码转换成: var hello = function(){alert('hello');}; hello(); 只有 阅读全文
摘要:
当自调用函数需要使用外部变量时,应该作为参数传递给函数,这样函数在访问外部变量时不用进行作用域链查找了 (function(window,jQuery){ //................ })(window,jQuery); 使用单个var,在代码块开头声明变量,防止逻辑混乱、减少代码量 va 阅读全文
摘要:
如果直接使用原型扩展系统函数,可能会和其他人的代码相互冲突 为了防止出现冲突,可以使用如下方法进行扩展: function MyArray(){ this.Name="MyArray"; } MyArray.prototype=[]; var arr =new MyArray(); arr.push 阅读全文
摘要:
平时在写js时应该用面向对象思想将每一组功能封装成一个模块,可实现模块间的高内聚低耦合、重用、结构清晰........... 如果页面中逻辑复杂、功能多,不使用模块封装是不可想象的,维护起来非常复杂。 举个栗子,比如页面中的登录弹窗:封装弹窗代码,外界代码订阅弹窗内的事件(登录、注册...) 1 f 阅读全文
摘要:
.net中StringBuilder的好处不多说了,下面是js版的StringBuilder function StringBuilder() { this.__stringArr__ = []; } $.extend(StringBuilder.prototype, { append: funct 阅读全文
摘要:
要理解闭包首先要知道什么是函数的作用域链 因为有函数的作用域链存在,所以函数无论在哪里调用,函数都可以使用函数外部作用域的变量。 当一个函数被调用时,会创建一个执行环境及相应的作用域链。然后使用arguments和其他命名参数的值来初始化函数的活动对象。此活动对象在当前函数作用域链的第一位,外部函数 阅读全文
摘要:
prototype:每个函数都有一个prototype属性,所有通过相同函数创建的对象都指向同一个prototype对象。 当使用对象的属性和方法时,首先在对象内部查找,如果没有就去原型中查找如果构造函数创建一个对象后修改构造函数的原型,之前创建的对象原型不变如果将prototype直接替换为一个新 阅读全文
摘要:
in: 案例1、遍历对象: for(key in obj) { console.info( key+":"+obj[key]; ) }; 案例2、判断对象中是否有属性: "name" in obj 案例3、判断数组是否有此下标: 3 in ['a','b','c','d'] typeof: type 阅读全文
摘要:
加密重要信息,如用户名、密码。防止http拦截。浏览器使用公钥加密,服务器端使用私钥解密 页面添加引用: jsencrypt.min.js // 3-Url参数加密类 if (window.JSEncrypt) { function InitJSEncrypt() { var _this = thi 阅读全文