美文网首页
7.构造函数的返回值、 工厂模式、 观察者模式、 单例模式

7.构造函数的返回值、 工厂模式、 观察者模式、 单例模式

作者: 何必处处示弱 | 来源:发表于2017-03-24 21:31 被阅读0次

ES5数组新增的3个方法

1、forEach

  • 作用:帮我们遍历数组,每遍历到一个值,就会调用一次回调,把这个值与它的下标传递过去
  • 语法:数组.forEach(function(v, i){ console.log('使用forEach帮我们遍历好的值与下标') })
  • 返回值:undefined

2、 map

  • 作用:可以用来代替forEach,但是map可以接收回调的返回值,最终通过一组数据映射为回调返回的另外一组数据
  • 语法:var mapArr = 数组.map(function(v, i){ return v * v })
  • 返回值:回调所有的返回值组成的新数组

3、 filter

  • 作用:可以用来代替forEach,但是还可以过滤数组中的值
  • 语法:var filterArr = 数组.filter(function(v, i){ if(v % 2 ==0){ return true; } })
  • 返回值:所有返回回调返回true的对应值组成的新数组

call&apply的补充

  • 如果不传参 ==> this指向window
  • 传null ==> this指向window
  • 传undefined ==> this指向window
  • 传123 ==> this指向123的包装类型对象(Number对象)
  • 传'abc' ==> this指向'abc'的包装类型对象(String对象)
  • 传true ==> this指向true的包装类型对象(Boolean对象)
  • 传对象 ==> this指向传入的对象

构造函数的返回值

  • 如果构造函数没有return语句,那么new它,得到一个新实例
  • 如果构造函数return了一些基本类型数据,那么new它,得到一个新实例
  • 如果构造函数return了一个对象,那么new它,得到return的对象

严格模式

  • ES5新增的一个特性,使用该特性可以让js以一种新的模式运行js脚本。
  • 该模式下可以强制我们抛弃那些不推荐不友好的写法
  • 该模式下可以让js之前的一些设计不太合理的api表现的合理一些
  • 该模式下可以让js拥有一些新的特性,比如ES6/ES7规范中定义的某些语法,必须在严格模式下才有效

严格模式的分类

  • 全局模式
    • 在全局代码的最上面书写一句话'use strict';
    • 使用该模式,所有的代码都按照严格模式执行
  • 局部模式
    • 在函数内部的最上面书写一句话'use strict';
    • 使用该模式,只有该函数内的代码才会按照严格模式执行

需要记住的几条严格模式规则

  • 定义变量必须使用var
  • 函数调用模式this为undefined
  • 真正实现了call谁this就为谁
  • eval拥有了单独的作用域

沙箱模式

  • 使用某种方式,防止一些代码对外界环境造成潜在影响,这类代码就可以认为是沙箱模式
  • 在js中,最简单的沙箱模式写法,就是使用一个自调函数把某块代码进行封装,可以防止全局变量污染

工厂模式

  • 凡是调用一个函数,函数返回一个对象,那么这个函数就可以认为是一个工厂。
  • 在js中,一般的工厂都是把new对象的过程进行了一个封装。

单例模式

  • 只要让某种类型的实例,只能存在一个,实现这种需求的代码就是单例模式
  • 在js中,JSON与Math对象就被设计为单例模式,我们不能够创建第二个这种类型的对象。

观察者模式 -- 发布订阅模式

  • 只要某事件发生后,会自动执行预设好的回调,那么实现这种需求的代码就是观察者模式
  • 观察者模式可以认为就是自定义事件
  • 观察者模式通常使用的场景是这样的:某对象做了某件事,其他对象做出相应的一个响应

bind

  • ES5提供了一个新的可以改变函数this指向的新函数
  • 作用:通过某函数得到一个绑定了固定this的新函数,这个新函数可以是旧函数的clone版本
  • 语法:var bindFn = 函数.bind(this)
  • 返回值:绑定了this的函数

类成员&实例成员

  • 类成员
    • 添加给类自己的属性与方法
  • 实例成员
    • 添加给实例自己的属性与方法
    • 原型上供实例使用的属性与方法

相关文章

  • 前端常用设计模式

    前端常见的设计模式主要有以下几种: 单例模式 工厂模式 策略模式 代理模式 观察者模式 模块模式 构造函数模式 混...

  • 前端设计模式

    1.写出 构造函数模式、混合模式、模块模式、工厂模式、单例模式、发布订阅模式的范例。 工厂模式 模块模式 构造函数...

  • okhttp用到的设计模式有哪些

    1. 构造者模式; 2.工厂模式; 3.观察者模式; 4.单例模式; 5.策略模式; 6.责任链模式; 7.享元模式;

  • 前端常见设计模式

    构造函数模式 模块模式 工厂模式 混合模式 单例模式 订阅发布模式

  • 常见的6种JavaScript设计模式

    构造函数模式 工厂模式 模块模式 混合模式 单例模式 发布订阅模式

  • 常见的设计模式

    构造函数模式 混合模式 模块模式 工厂模式 单例模式 发布订阅模式

  • js常见设计模式

    构造函数模式: 工厂模式: 模块模式 混合模式 单例模式 发布订阅模式

  • Javascript 设计模式

    构造函数模式 混合模式 模块模式 工厂模式 单例模式 发布订阅模式

  • 前端设计模式

    1.写出 构造函数模式、混合模式、模块模式、工厂模式、单例模式、发布订阅模式的范例。 构造函数模式 构造函数模式是...

  • 高级6

    1、写出 构造函数模式、混合模式、模块模式、工厂模式、单例模式、发布订阅模式的范例。 构造函数: 混合模式: 模块...

网友评论

      本文标题:7.构造函数的返回值、 工厂模式、 观察者模式、 单例模式

      本文链接:https://www.haomeiwen.com/subject/gnhqottx.html