Javascript 如何将所有对象属性置于最前沿? 开始:
JavaScript中的Javascript 如何将所有对象属性置于最前沿? 开始:,javascript,math,Javascript,Math,JavaScript中的Math对象可以证明非常有用。在重复使用Math对象的页面中,我不希望继续使用。我更愿意在顶层使用这些函数。我将举一个例子说明这是如何实现的: 带有关键字(坏方法)的选项: 让我声明如下:这是绝对可怕的,永远不要使用它 与(数学){ 设q=min(10211); 设r=max(2,8); 设e=random(); 设p=楼层(e*r) 控制台日志(q*r/e) } 通过这样定义将对象置于前面(好方法): 我更喜欢用这种方式,而不是上面的方式 设{min,max,rand
Math
对象可以证明非常有用。在重复使用Math
对象的页面中,我不希望继续使用。我更愿意在顶层使用这些函数。我将举一个例子说明这是如何实现的:
带有关键字(坏方法)的选项:
让我声明如下:这是绝对可怕的,永远不要使用它
与(数学){
设q=min(10211);
设r=max(2,8);
设e=random();
设p=楼层(e*r)
控制台日志(q*r/e)
}
通过这样定义将对象置于前面(好方法):
我更喜欢用这种方式,而不是上面的方式
设{min,max,random,floor}=Math;
设q=min(10211);
设r=max(2,8);
设e=random();
设p=地板(e*r);
控制台日志(q*r/e);
续:
我在问是否有人知道用with
关键字而不用with
完成什么的方法,因为我觉得with
很糟糕。我很想知道是否有可能获得Math
的所有单词,并将其存储到定义为Math
的对象中。我理解这可能令人困惑。感谢阅读。对于普通对象(对象类的实例),您可以使用对象。分配将其属性添加到窗口
对象。但是对于Math
和其他属性,它们的属性似乎不可枚举。相反,您可以使用Object.getOwnPropertyNames
查找数学的所有属性并将它们附加到窗口对象
for (let prop of Object.getOwnPropertyNames(Math)) {
window[prop] = Math[prop];
}
console.log(PI); // 3.14...
我认为这不是一个很好的做法,因为它对于将哪些名称添加到全局名称空间不是很透明。我不确定您在问什么。你已经有了一个很好的解决方案,不是真的,不是没有eval
或类似的东西。明确地预先声明所有变量,事情就会变得更好,更易于维护。让{min,max,random,floor,…other}=Math,不知道你实际上在做什么want@evolutionxbox,目标是“全球化”所有Math
对象,因此可以从窗口
访问它们。我更困惑的是数学
已经在全局范围内了。使用数学。
?很好的发现。您还可以检查是否已经存在冲突的全局名称,而不是覆盖它。