javascript - 对成功网站的 JS 非常失望

标签 javascript

我学习网络开发已经大约一年了。然后我开始应用我在网站上学到的东西(我还没有完成)。不幸的是,当我保存一些成功网站(如 Amazon、facebook 等)的 JS 和 Html 文件时,我对编写 JS 的完全不同的方法感到震惊。很难阅读和理解。问题:

  1. 为什么他们在大部分 JS 中使用 OOP。我了解到,只有在某些情况下才需要 OOP,但是大多数专业网站在其 JS 文件中几乎所有地方都使用 oop?
  2. 为什么他们从不给对象和函数起有意义的名称?
  3. 看起来他们正在以最难的方式编写 JS。我对吗?但为什么呢?
  4. 这是否意味着为了制作一个成功的网站,JS 必须以同样复杂的方式编写???

我实际上已经了解了有关 JS 的所有知识,并且非常清楚由于 DOM 使用不当而导致的性能问题。但这些 JS 文件确实让我厌烦了。以下是一些镜头:

Array)for(var c=0;c<a[b].length;c++)a[b][c]();a[b]=!0},add:function(b,c){for(var e=1,f=function(){--e<=0&&g(c)},h=b.length;h--;)a[b[h]]!==!0&&((a[b[h]]=a[b[h]]||[]).push(f),e++);f()}}},m=function(a){a=a||{};this.context=a.context||d;this.once=a.once||!1;this.async=a.async||!1;this.observers=[];this.notifyCount=0;this.notifyArgs=[]};m.prototype={notify:function(){this.notifyCount++;if(!(this.once&&this.notifyCount>1)){this.notifyArgs=[].slice.call(arguments);for(var a=0;a<this.observers.length;a++)this._run(this.observers[a])}},
observe:function(a){if(e(a))if(this.once&&this.isNotified())this._run(a);else return this.observers.push(a),this.observers.length-1},remove:function(a){return a>-1&&a<this.observers.length?(this.observers[a]=function(){},!0):!1},boundObserve:function(){var a=this;return function(){a.observe.apply(a,arguments)}},isNotified:function(){return this.notifyCount>0},_run:function(a){var b=this.notifyArgs,c=this.context;this.async?g(function(){a.apply(c,b)}):a.apply(c,b)}};var p=function(){var a={},b=0,k=
{},o=n(),p={},i=function(a){this.data={name:"nav:"+b++,group:"rcx-nav",value:null,result:null,immediate:!0,process:!1,override:!1,resolved:!1,watched:!1,context:k,when:[],iff:[],filter:[],observe:[],stats:{defined:c(),resolved:-1,buildStarted:-1,buildCompleted:-1,callCount:0,executionTime:0}};for(var e in a)a.hasOwnProperty(e)&&(this.data[e]=a[e]);if(this.data.name.indexOf("]")>-1&&(a=this.data.name.split("]"),a.length===2&&a[0].length>1&&a[1].length>0))this.data.name=a[1],this.data.group=a[0].replace("[",
"")};i.prototype={getDependencyNames:function(){for(var a=[].concat(this.data.when,this.data.filter) 

您可以从任何网站下载此类文件。我真的很想看到有关这个现实生活问题的任何解释。提前非常感谢

最佳答案

也许你应该看看 https://github.com/mishoo/UglifyJS

并了解 JavaScript 压缩。

这样的丑化是为了提高性能,而且是通过工具完成的,当然我们不会这样写JS。

也许您需要阅读更多有关 javascript 编程的内容:

干杯

关于javascript - 对成功网站的 JS 非常失望,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36762906/

相关文章:

javascript - 如何从javascript动态创建文本框

javascript - 代码未在 JSFiddle 中运行但在站点上运行

javascript - 在 div.toggle 之后保持滚动位置(JQUERY)

java - 如何在 Java Web 应用程序中自动对静态文件(css、js、图像)进行版本控制

JavaScript 函数声明样式

javascript - React setState回调执行顺序

javascript - 为什么减去日期对象不起作用

javascript - 数组过滤方法传递数据类型而不是谓词

javascript - 如何使用javascript动态更改当前复选框的默认复选框?

javascript - 移除 JavaScript 中的无效字符