微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 骨干库代码模式我无法理解

我是中级 javascript开发人员,试图了解javascript开发人员如何编写他们的代码,我决定开始寻找Backbone库作为起点.

这里有一些用于骨干初始设置的代码片段,请帮助我理解它.

code1 –

(function(){
   var root = this;
}).call(this);

是否有任何特定的理由使用调用方法而不是简单地使用(),或者它只是一个编码首选项,如果我必须编写相同的代码,我会做这样的事情.

(function(root){

})(this);

代码2 –

var Backbone;
  if (typeof exports !== 'undefined') {
    Backbone = exports;
  } else {
    Backbone = root.Backbone = {};
  }

现在在全局范围内没有导出的定义,也没有在本地范围内的任何地方定义那么如果我正在编写相同的代码,那么if是什么

var Backbone = root.Backbone = {};

代码3

var _ = root._;
if (!_ && (typeof require !== 'undefined')) _ = require('underscore')._;

再次,我无法在本地或全球范围内找到需求的定义

解决方法

代码块1

这取决于开发人员的偏好,您可以用任何一种方式编写代码,实际上,许多库确实更喜欢您建议的样式.

代码块2

这个块是对AMD Boiler Plate的一种看法.AMD库提供了split your JavaScript code into modules所需的钩子.在代码块的情况下,exports对象是CommonJS Module Standard使用的全局.如果导出全局不存在则将Backbone添加到根对象直.

一个有趣的侧面说明是Backbone不支持导出到流行的RequireJS AMD库.

代码块3

require是AMD库引入的另一个全局,见上文.

原文地址:https://www.jb51.cc/js/240860.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐