随笔分类 - javascript
摘要:装饰者模式的主要功能就是动态的将责任附加到对象上,而由于javascript的动态特性,为javascript函数添加新的职责将变得非常容易一、概念装饰者提供比继承更有弹性的替代方案。 装饰者用于包装同接口的对象,不仅允许你向方法添加行为,而且还可以将方法设置成原始对象调用(例如装饰者的构造函数)。装饰者通过重载方法的形式添加新功能,该模式可以在被装饰者前面或者后面加上自己的行为以达到特定的目的。二、实例 1 function Beverage() 2 { 3 this.description="Unknown Beverage"; 4 this.cost=function
阅读全文
摘要:一、语法(js手册)call 方法调用一个对象的一个方法,以另一个对象替换当前对象。call([thisObj[,arg1[, arg2[, [,.argN]]]]])参数thisObj可选项。将被用作当前对象的对象。arg1, arg2,, argN可选项。将被传递方法参数序列。说明call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。应用某一对象的一个方法,用另一个对象替换当前对象。apply([thisObj[,arg
阅读全文
摘要:一、定义策略模式定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算饭的客户.二、正文相信大家在web开发的时候都接触过jquery验证插件jquery.validate.js, 接下来我们通过此插件的源码和用法来展开讨论策略模式的用法。jquery.validate.js在线源码网址:http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.js1、纵观整个源码我们可以发现验证插件主要通过jquery的exten和fn来给jquery扩展对象从而达到验证表单的目的(functio
阅读全文
摘要:this是Javascript语言的一个关键字。它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用.随着函数使用场合的不同,this的值会发生变化。但是有一个总的原则,那就是this指的是,调用函数的那个对象。
阅读全文
摘要:一、相关概念1、动态程序设计语言(Dynamic Programming Language ) Dynamic Programming Language (动态语言或动态编程语言) 动态语言,准确地说,是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化。比如众所周知的ECMAScript(JavaScript)便是一个动态语言。除此之外如Ruby、Python等也都属于动态语言,而C、C++等语言则不属于动态语言。2、 动态类型语言和静态类型语言 动态类型语言:动态类型语言是指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言...
阅读全文
摘要:1 console.log("锋叔子的选择排序"); 2 //选择排序 3 function selectSort(myArray) 4 { 5 var k = 0; 6 var tmp = 0; 7 //每次循环找出最大的值 8 for(var i = 0; i < myArray.length - 1; i++) { 9 k = i;10 //找出最大值11 for(var j = i; j < myArray.length; j++) {12 if(myArray[j] < myAr...
阅读全文
摘要:1 console.log("锋叔子的插入排序 "); 2 //插入排序实现 3 function insertSort(myArray) 4 { 5 for (var i = 1,n=myArray.length; i = 0 && myArray[j] > temp; j--) {12 myArray[j + 1] = myArray[j]; 13 }14 myArray[j + 1] = temp; 15 }16 };17 return myArray;18 }1...
阅读全文
摘要:1 console.log("锋叔子的插入排序 "); 2 //插入排序实现 3 function insertSort(myArray) 4 { 5 for (var i = 1,n=myArray.length; i = 0 && myArray[j] > temp; j--) {12 myArray[j + 1] = myArray[j]; 13 }14 myArray[j + 1] = temp; 15 }16 };17 return myArray;18 }1...
阅读全文
摘要:1 //快速排序 2 function quickSort(myArray,left,right) 3 { 4 5 if (left = x) // 从右向左找第一个小于x的数 12 j--; 13 if(i < j) 14 myArray[i++] = myArray[j]; 15 16 while(i < j && myArray[i] < x) // 从左向右找第一个大于等于x的数 17 ...
阅读全文
摘要:1 //冒泡排序实现 2 function bubleSort(myArray) 3 { 4 var temp=0; 5 for (var i = 0; i myArray[j+1]) 8 { 9 temp=myArray[j+1];10 myArray[j+1]=myArray[j];11 myArray[j]=temp;12 }13 };14 };15 16 return myArray;17 }1...
阅读全文
摘要://题目一if (!("a" in window)) { var a = 1;}console.log("题目一的答案:",a);//题目二var a = 1, b = function a(x) { x && a(--x); };console.log("题目二的答案:",a);//题目三function c(x) { return x * 2;}var c;console.log("题目三的答案:",c);//题目四function d(x, y, d) { arguments[2] = 10;
阅读全文
摘要:1 /** 2 * 获取URL的所有查询参数 3 */ 4 function getUrlQueryParams(url){ 5 var params = {}; 6 var regex = /[\?&]([a-zA-Z_]+)=([\w\-\.]*)/g; 7 while( ( results = regex.exec( url ) ) != null ){ 8 params[results[1]]=results[2]; 9 }10 return params;11 }上周因为产寻参数中带".",需要修改同事的正则表达式,因为不熟悉而感觉无从下手,趁这周没加班狠
阅读全文

浙公网安备 33010602011771号