美文网首页
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的函数

    类成员&实例成员

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

    相关文章

      网友评论

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

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