Javascript中使用Object还是Function构建工具包?

Javascript中使用Object还是Function构建工具包?

这是一个疑问,在我还没有清晰的明确的认识到问题的方向之前

(function(){
var myTools;
...
window.myTools=myTools;
})();

用匿名方法来封闭作用域以便避免自己的代码同其他代码的重名导致的混乱,应该已经算是有个相对清晰的认识

对于使用 window.myTools 的方式来减少对名称的占用也算同自己的习惯达成了共识

然而,对于以往工具的沿用还有共同代码的复用是使用prototype还是自己一个一个的复制,还有些不大清晰


// object 方式
function _baseChart(config){
  var _chart={config:{name:"chart"}};
  return _chart;
}
function _myChart(config){
  var _chart=_baseChart({name:"myChart"});
  jQuery.extend(_chart.config,config);
  return _chart;
}

var chart=_myChart({name2:"TEST Chart"});

// class 方式
function _baseChart(config){
   var _chart=this;
   _chart.config={name:"chart",version:"0.1"};
   jQuery.extend(_chart.config,config);
}
function _myChart(config){
  var _chart=this;
  jQuery.extend(_chart.config,config);
}
_myChart.prototype=new _baseChart({name:"myChart"});

var chart=new _myChart({name2:"TEST Chart"});


该选用哪种方式呢, 之前为了更少的变化使用的第一种方式,但直觉的认为这次优化应该改用第二种


Object 的方式 每个属性都是直接写到Object的上的

Class 的方式 每个属性是写到Class.prototype上的

Object 对当前实例的修改不会影响到其他实例

Class 对当前实例的修改不会影响到其他实例

Object 在创建实例后不能在没有实例引用的情况下对其进行修改

Class 在创建实例后可以在没有实例引用的情况下对其默认属性进行修改




  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值