【问题标题】:What is (function e(t,n,r){ ...}) in Javascript? [duplicate]Javascript 中的 (function e(t,n,r){ ...}) 是什么? [复制]
【发布时间】:2017-01-16 20:05:15
【问题描述】:

我正在研究 List.js 框架。 这是一个起始代码。如果我删除它(甚至删除函数 e 周围的“()”),代码不起作用。

这是什么?我认为它已经在 J​​avascript 方法中定义了。

(function e(t,n,r){
  function s(o,u){
   if(!n[o]){
    if(!t[o]){
    var a=typeof require=="function"&&require;
    if(!u&&a) return a(o,!0);
    if(i)return i(o,!0);
    var f=new Error("Cannot find module '"+o+"'");
    throw f.code="MODULE_NOT_FOUND",f
    }

    var l=n[o]={exports:{}};
    t[o][0].call(l.exports,function(e){
    var n=t[o][1][e];
    return s(n?n:e)
    },l,l.exports,e,t,n,r)
   }

 return n[o].exports
 }

 var i=typeof require=="function"&&require;
 for(var o=0;o<r.length;o++)
 s(r[o]);

 return s
}
)

【问题讨论】:

  • 它是允许您使用模块的缩小代码。浏览器不支持开箱即用的模块(目前),并且有像 Browserify 这样的工具允许您在浏览器中使用 CommonJS 样式模块。
  • OT,将缩小后的代码与原始源代码进行比较可以帮助:) 缩小的“逆”名称显然是“源图”。
  • 我不同意这个问题是重复的。 @MikeCluck 的答案是我正在寻找的,它不在所谓的原版中。
  • 那段代码在浏览器中定义了“require”。这是非缩小版:github.com/browserify/browser-pack/blob/master/prelude.js

标签: javascript minify


【解决方案1】:

它是 javascript 的缩小版本(除了文件大小和可读性之外,它没有任何实际区别)所以实际上,它实际上是非常普通的 javascript 代码。但是,编写时没有非强制语法、不需要的空格、较短的变量名,所有这些都是为了减少文件传输时间。

【讨论】:

  • 我认为她不是在问什么是缩小代码,而是问那段代码是做什么的。这个问题也被@mike-cluck 错误地标记为重复。我在上面的cmets中给出了正确答案。
猜你喜欢
  • 2013-06-01
  • 2013-03-03
  • 2012-03-05
  • 2012-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多