javascript - js公共方法的封装问题

查看:248
本文介绍了javascript - js公共方法的封装问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

项目中需要封装一些js公共方法,

第1种做法:

function xx() {}
function yy() {}

第2种做法:

var a = new A();
A.prototype.xx=function () {};
A.prototype.yy=function () {};

这两种方法哪个好,各自使用场景都是啥?谢谢

解决方案

第一种方式不可取,直接定义到全局,很容易造成全局变量的污染,特别是多人开发项目中,很容易造成变量的冲突,并且随着项目的不断增大,可维护性会越来越低。

第二种方式你的写法本身是有问题的,应该是

function A () {}
A.prototype.xx=function () {};
A.prototype.yy=function () {};

调用的时候需要例如这样

var globalMethods = new A();
globalMethods.xx();

整体来说比较繁琐,并且需要new一个对象,也有不必要的性能开销(我没见过这么写的)

一般的做法是定义一个对象,并且规定好命名空间(团队协作时很有用)

var YourappnameGlobalMethods = {
    xx: function () {},
    yy: function () {}
}


YourappnameGlobalMethods.xx();

当然最好是使用模块化编程

methods.js

var methods = {
    xx: function () {},
    yy: function () {}
}

module.exports = methods;

调用

var methods = require('methods.js');
methods.xx()

这样就不会污染全局作用域,命名冲突等问题了。

这篇关于javascript - js公共方法的封装问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆