一,意图   定义一个用于创建对象的接口,让子类决定实例化哪一个类.工厂方法使一个类的实例化延迟到其子类. 二,别名   虚构造器 Virtual Constructor 三,适用性 当一个类不知道它所必须创建的对象的类的时候. 当一个类希望由它的子类来指定它所创建的对象的时候. 当类将创建对象的职责委托给多个帮助子类的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候. 四,结构 五,示例   如该模式的意图所示,工厂方法模式并不难理解.我们沿用抽象工厂模式的示例例子,观察改用工厂…
文章来源于:https://www.cnblogs.com/dolphinX/p/3353590.html 创建数组 构造函数 1.无参构造函数,创建一空数组 var a1=new Array(); 2.一个数字参数构造函数,指定数组长度(由于数组长度可以动态调整,作用并不大),创建指定长度的数组 var a2=new Array(5); 3.带有初始化数据的构造函数,创建数组并初始化参数数据 var a3=new Array(4,'hello',new Date()); 字面量 1.使用方括号…
数组 var arr= new Array(); arr.push(); //在数组尾部添加一个元素,返回新的长度 *原数组发生变化 arr.pop(); //删除最后一个元素,返回的是被删除的元素 *原数组发生变化 arr.unshift(); //在头部添加一个元素,返回长度 *原数组发生变化 arr.shift(); //删除数组第一个元素,返回被删除的元素 *原数组发生变化 arr.concat(); //添加元素或数组,返回一个一维数组,可用来合并数组 arr.join(); //将数…
在Javascript中,有时我们会用到数组去重.我在这里给大家介绍一下本人认为最简单实用的一种方法-indexOf()去重. var arr = [1,1,1,2,2,2,3,3,4,5,6,2,1]; var arr2 = []; for(var i = 0;i < arr.length;i++){ if(arr2.indexOf(arr[i]) == -1){ arr2.push(arr[i]) } } console.log(arr2) //[1,2,3,4,5,6] 它的原理非常的简单…
在Javascript中有自带方便遍历数组的方法(此方法非彼方法不要误会哦): 1 .利用for( index in array ){}; 2.利用 array.forEach( function(element, index) {}: 但是它们两个是怎么遍历数组的呢,是正序还是倒序呢? <script> var arr = ["a","b","c","d","e"]; for (key in…
别怪我是一个闷葫芦,没那么多花哨的语言,废话不多说,先说说小实例的要求: 编写一个方法,实现从n-m个数中随机选出一个整数,要求:传递的参数不足两个或者不是有效数字,返回[0-1]之间的随机数,需要解决n和m两个数大小问题,如果m<n,两个参数的值进行交换: 看到这个求随机数的小实例,相信很多人都会写,也写过很多相关的程序代码,所以,重要的知识点没有,旨在给初学者一些启发,大牛可略过! 既然是给初学者看的,那么我们就从最基本的东西一步一步的看,便于理解,先拆分一下要求吧: 1.求一个n-m的随机…
过去,我们使用各种各样的方法来将类似Array对象的东西(比如 arguments 和 NodeList) 转换成真的数值.比如下面这个: 将NodeList转换成数组 基本上,这些东西我们都可以使用Array.prototype.slice.call()这样的方法将arguments和NodeList等转行成想要的形式. 如今,我们有了更直接的方法,直接将这些类数组的对象转化成真正的对象. 将NodeList 转化成 Array var divs = Array.from(document.q…
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> var str = "1a2b3c4d5e6f7"; /* * split() * - 可以将一个字符串拆分为一个数组 * - 方法中可以传递一个正则表达式作为参数…
JS 处理数组多种方法 js 中的数据类型分为两大类:原始类型和对象类型. 原始类型包括:数值.字符串.布尔值.null.undefined 对象类型包括:对象即是属性的集合,当然这里又两个特殊的对象----函数(js中的一等对象).数组(键值的有序集合). 数组元素的添加 arrayObj.push([item1 [item2 [. . . [itemN ]]]]); 将一个或多个新元素添加到数组结尾,并返回数组新长度 arrayObj.unshift([item1 [item2 [. . .…
//都接受3个参数,分别为:值.在数组中的位置.数组对象本身 var num = [2, 1, 5, 4, 2, 1, 6, 8, 19]; //every:若每一项都返回true,则返回true var a= num.every(function(item,index,array){ return item>5 }); console.log(a); // false //filter:返回true项组成的数组 var b= num.filter(function(item,index,arr…