可以和(一起使用吗
Is it okay to use with()?
本文关键字:一起 更新时间:2023-09-26
有一次,我看到了这样一个例子:
var a, x, y;
var r = 10;
with (Math) {
a = PI * r * r;
x = r * cos(PI);
y = r * sin(PI / 2);
}
它看起来非常方便,因为这样我就不必键入所有的Math.
s。
但当我看MDN时,它说:
不建议使用
with
,并且在ECMAScript 5的严格模式中禁止使用。建议的替代方法是将要访问其属性的对象分配给临时变量。
那么可以使用with()
吗?在HTML5
中?
您链接的MDN显示Using with is not recommended
with
是制作午餐意大利面条代码的一种很好的方法。
你可能喜欢它,但需要调试它的人会诅咒你。
javascript
有一些非常奇怪的运算符,比如逗号运算符(,
)
你能理解以下代码的作用吗?
var a = "a";
var b = "b";
a = [b][b = a,0];
它交换了a和b…你不理解,
,所以需要维护你的with
代码。不要使用黑客,黑客在猜谜游戏中很酷,而不是在真正的代码中。
逗号运算符什么时候有用
逗号交换Fiddle
只要您理解,就可以使用JavaScript的任何功能。
例如,使用with
,您可以访问对象的现有属性,但不能创建新属性。
观察:
var obj = {a:1,b:2};
with(obj) {
a = 3;
c = 5;
}
// obj is now {a:3,b:2}, and there is a global variable c with the value 5
它可以用于缩短代码,例如:
with(elem.parentNode.children[elem.parentNode.children.length-3].lastChild.style) {
backgroundColor = "red";
color = "white";
fontWeight = "bold";
}
因为style
对象的属性已经存在。
我希望这个解释足够清楚。
他说:"不幸的是,它的结果有时是不可预测的,所以应该避免"。
他接着举了一个例子,根据对象是否定义,with中的赋值将对不同的变量进行操作。
请参阅被认为有害的陈述(但不如书中的解释详细)。
相关文章:
- 转义符不能与innerHTML一起使用
- 高亮显示与数组字符串一起使用时文本插件中断
- setTimeout可以与闭包内的函数一起使用吗
- 将依赖外部库的UMD模块与browserfy捆绑在一起
- Highcharts colorsByPoint与系列中的线性渐变一起使用时不起作用
- 如何将js库与typescript一起使用
- 将webpack和babel与父项目目录中的文件一起使用
- 将 Drag&Drop 与 jsTree 和 DataTables 一起使用
- Javascript-如何让脚本与Ajax请求的数据一起运行
- 将两个ext.TabPanels滚动到一起
- 将jQuery UI Timepicker Addon与React一起使用
- 什么是curl以及如何将其与nodejs一起使用
- Javascript”;onmousemove”;事件无法与类一起使用
- 将require('..')与变量一起使用与在webpack中使用字符串相比
- 如何在php中创建一个函数,该函数与文本区域一起工作,通过输入类似[color:red]的内容来打印具有等效颜色的文本
- 三角库可以与firefox一起使用,但不能在Chrome中使用
- 为什么不't我的ruby代码与javascript文件一起插入
- 通过jQueryAjax一起发布Array和Form数据时出现问题
- 如何将eventListeners与Angularjs+Electron一起使用
- 将FormParams与Jersey和jQuery一起使用