美文网首页
javascript工厂函数实战项目——12个模块引用同一份js

javascript工厂函数实战项目——12个模块引用同一份js

作者: 轨迹枫 | 来源:发表于2019-03-14 22:29 被阅读0次

最近在做一个后管项目,其中有一个功能有多个类似的模块,前端项目新建了12个html页面,页面ID不同,前端根据ID作为12个页面的区分。之前的做法是一个html对应一个js,这样保证页面之间的数据不会串联,这次挑战一下,12个页面复用一个js文件:

思考点:如何做到页面之间的数据不会发生交叉,即后面的数据覆盖之前的数据?

答案是:作用域。每个页面模块拥有了自己的作用域,彼此互相独立。

具体做法:

1、js文件创建一个工厂函数

function init (opts) {

    this.wrap = opts.wrap;

    this.name = opts.name;

    ...

}

init.prototype.fn1 = function () {

}

init.prototype.fn2 = function () {

}

return init

2、在12个页面里面引用这个js

var pa1  = new init ({name: name, wrap: wrap});

pa1();

var pa2  = new init ({name: name, wrap: wrap});

pa2();

此时new出一个实例pa1. pa2,它们都拥有了一个独立的作用域,并且继承了init的原型方法和属性。

new 做了3件事情

1、创建一个空对象  var obj = {}

2、把这个空对象的原型链指向 构造函数 obj.__proto__ = init.prototype;

3、具体执行构造函数并把this绑定到这个空对象{}。init.call(obj, name, wrap);  返回这个实例对象

用代码说话:

相关文章

  • javascript工厂函数实战项目——12个模块引用同一份js

    最近在做一个后管项目,其中有一个功能有多个类似的模块,前端项目新建了12个html页面,页面ID不同,前端根据ID...

  • JavaScript基础

    一、JavaScript基本语法 可将JavaScript函数写成一个独立的js文件,在HTML文档中引用该.js...

  • AMD,CMD,commonJS,ES6

    AMD 异步模块定义 RequireJS 是一个JavaScript模块加载器,会在相关的js加载后执行回调函数,...

  • node.js之模块机制

    什么是模块 Node.js的模块遵循Common.js的模块规范,包括模块引用,模块定义和模块标识。 模块引用 模...

  • 08_Node.js 工具模块 util

    util(工具)是一个 Node.js 核心模块,提供常用函数的集合,用于弥补核心 JavaScript 的功能 ...

  • js常见设计模式

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

  • JavaScript中的函数

    @(javascript)[js函数] [toc] JavaScript中的函数 函数的分类与定义函数的方式 Ja...

  • vue项目中获取外部js,并使用其中方法

    因为项目需要,需要从外部获取js(这些js文件本身是自执行函数),然后在vus项目中引用其中的方法。通过参考其他博...

  • node util使用

    util 是一个Node.js 核心模块,提供常用函数的集合,用于弥补核心JavaScript 的功能 过于精简的...

  • JavaScript模块化

    参考探索js的模块化 什么是JavaScript模块化? 模块化在我看来,就是把一些公共的函数封装起来给其他地方调...

网友评论

      本文标题:javascript工厂函数实战项目——12个模块引用同一份js

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