有一些有趣的东西:在任何JS窗口中运行:
val = document.body.getBoundingClientRect();
console.log(val)
val.left += 10;
console.log(val)
或对返回值的任何其他修改。这个对象如何不可变?
这使得很难对元素的getBoundingClientRect()进行穿孔处理,从而更改原始值。尽管我想您可以重新创建对象,但我不知道JS甚至具有不可变对象的功能。这样对吗?
只是一个简单的例子:
var getBoundingNothing = {left:20};
Object.freeze( getBoundingNothing ); // if you comment this line...
var gbn = getBoundingNothing;
console.log( gbn ); // Object { left=20 }
gbn.left = 70 ;
console.log( gbn ); // Object { left=20 } // ...than left=70
考虑阅读这篇有趣的文章:http : //ejohn.org/blog/ecmascript-5-objects-and-properties/
从那篇文章中,您所需要的一切,就直接转到MDN:https :
//developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句