Javascript 为什么要分配字符串';原型&x27;设置一个变量,然后使用它来设置对象的原型?

Javascript 为什么要分配字符串';原型&x27;设置一个变量,然后使用它来设置对象的原型?,javascript,properties,prototype,Javascript,Properties,Prototype,我只是在一段时间内遇到了这段代码,我不明白开发人员为什么选择执行以下操作: var protoProp = "prototype"; 。。。在代码的后面 ClassList[protoProp] = []; ClassList.prototype=[]有什么问题吗?我想不出他们为什么要这样做。我缺少什么?它看起来是为了最小化,可以将该值转换为 ClassList[v]=[]; 而不是 ClassList.prototype = []; protoProp变量用于多个位置,而不是proto

我只是在一段时间内遇到了这段代码,我不明白开发人员为什么选择执行以下操作:

var protoProp = "prototype";
。。。在代码的后面

ClassList[protoProp] = [];

ClassList.prototype=[]
有什么问题吗?我想不出他们为什么要这样做。我缺少什么?

它看起来是为了最小化,可以将该值转换为

ClassList[v]=[];
而不是

ClassList.prototype = [];

protoProp
变量用于多个位置,而不是
prototype
,并且将总共节省几个字节

在我的上一个项目中,我需要缩小和模糊我的代码,并转换所有像这样的对象

arr.length ===> arr["length"];
str.replace("a","") ===> str["replace"]("a","");
Element.prototype.colorize ===> Element["prototype"]["colorize"]
每件事都很顺利 现在我有了弦
长度
替换
原型
着色

我们有多种方法来混淆这些字符串,使其更难阅读。

非常好的观点。另外,这意味着比属性重命名更重要的缩小器将不使用该属性名称,这显然很重要。我希望任何一个半正派的人都知道不要使用
prototype
,但是…。@T.J.Crowder-事实上,我不认为任何迷你们会改变字符串值,也不会弄乱
prototype
之类的内置属性。当然,我们在
窗口
文档
和其他不使用某种变量就无法缩小的常见引用中一直看到这种优化,但我认为我以前没有在
原型
中看到过这种优化,或者至少我没有特别注意到它。但是我确实想知道为什么迷你们不能自己做这个优化…@Bergi-我猜将点符号改为括号以节省几个字节,也可能会导致一些意想不到的问题(不确定是什么?)我不认为它可以。也许为字符串常量找到一个合适的范围还不够容易。