对HTMLElement#style的未定义属性赋值的返回值是否保证与赋值的值相同?
更一般地说,对主机对象(已声明或未声明)属性的赋值是否始终保证返回与赋值相同的值?如果不安全,样式属性是否安全?
换句话说,这是安全的吗?
var node = document.getElementById("#foo");
node.style.WebkitTransition =
node.style.MozTransition =
node.style.OTransition = '0.4s all linear';发布于 2012-02-13 16:18:42
是的,你的例子是安全的。根据ECMA-262 spec,赋值表达式始终返回表达式右侧的值。您的示例的评估结果为:
// original
node.style.WebkitTransition =
node.style.MozTransition =
node.style.OTransition = '0.4s all linear';
// step 1
node.style.WebkitTransition =
node.style.MozTransition =
('0.4s all linear');
// step 2
node.style.WebkitTransition =
('0.4s all linear');因为这是语言规范的一部分,所以我不认为赋值的左边是什么类型的对象或变量是重要的。
发布于 2012-02-13 13:48:37
是的,上面描述的方法是安全的。基本上,您只是链接var赋值。这就相当于说
var c = 'value';
var b = c;
var a = b;
console.log(a) => 'value'https://stackoverflow.com/questions/9255969
复制相似问题