Javascript 中的 (function e(t,n,r) ...) 是啥? [复制]

Posted

技术标签:

【中文标题】Javascript 中的 (function e(t,n,r) ...) 是啥? [复制]【英文标题】: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 【参考方案1】:

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

【讨论】:

我认为她不是在问什么是缩小代码,而是问那段代码是做什么的。这个问题也被@mike-cluck 错误地标记为重复。我在上面的cmets中给出了正确答案。

以上是关于Javascript 中的 (function e(t,n,r) ...) 是啥? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript 之 解码类似eval(function(p,a,c,k,e,d){}))的JavaScript代码

javascript中的咖喱

javascript:关于js的function参数中带的Event

在 Javascript/jQuery 中,(e) 是啥意思?

JavaScript中的this相关说明

JavaScript中的工厂方法构造函数与class