![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
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 · 58 阅读 · 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 · 84 阅读 · 0 评论 -
let、const和var命令
一、let 命令变量的声明作用域只是在所命令所在的代码块内有效{ let a = 111 var b = 1}console.log(a) // ReferenceError: a is not definedconsole.log(b) // 1可以看出来,let和var声明变量在块级作用域内,在外部var可以证明访问,而let就会报错。比如在for循环中的各种应用:let在for循环里应用for(let i = 0; i< 6; i ++) {原创 2021-08-13 21:12:11 · 98 阅读 · 0 评论 -
js 原生实现call、apply、bind
一、实现callFunction.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 · 61 阅读 · 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 · 200 阅读 · 0 评论