js
qq_29311189
这个作者很懒,什么都没留下…
展开
-
js 设计模式-策略模式
定义:定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换。 目的:就是将算法的使用和实现分离开来。除了封装算法,还可以封装业务规则 以下为js简单的实现: // 选择不同交通方式去计算需要花费的总价 var Strategies = { "ship": function(num) { return 500 * num }, "plane": function(num) { return 1000 * num },原创 2021-08-14 21:47:53 · 66 阅读 · 0 评论 -
js 设计模式-单例模式
定义 保证一个类仅有一个实例,并提供一个访问它的全局访问点 简单实现单例模式 // 不透明性的实现方式 var Singleton = function(className) { this.className = className } Singleton.prototype.getClassName = function() { return this.className } Singleton.getInstance = (function(){ var insta原创 2021-08-14 21:04:14 · 107 阅读 · 0 评论 -
let、const和var命令
一、let 命令 变量的声明作用域只是在所命令所在的代码块内有效 { let a = 111 var b = 1 } console.log(a) // ReferenceError: a is not defined console.log(b) // 1 可以看出来,let和var声明变量在块级作用域内,在外部var可以证明访问,而let就会报错。 比如在for循环中的各种应用: let在for循环里应用 for(let i = 0; i< 6; i ++) {原创 2021-08-13 21:12:11 · 125 阅读 · 0 评论 -
js 原生实现call、apply、bind
一、实现call Function.prototype.myCall = function(context, ...args) { if(typeof this !=='function') { throw new TypeError('不是函数') } context = context || window context.fn = this const res = context.fn(...args) delete context.f原创 2021-08-12 18:16:57 · 68 阅读 · 0 评论 -
js 实现map、foreach、filter、find、findIndex
一、实现map方法,map会返回一个新的数组 Array.prototype.myMap = function (callback) { if (typeof callback !== 'function' || Array.isArray(this) || !this.length) { throw new TypeError('报错了'); } let res = [] for (let i=0; i < this.length; i++) {原创 2021-08-12 18:00:25 · 229 阅读 · 0 评论