getBoundingClientRect的返回值如何不可变?

无臭虫

有一些有趣的东西:在任何JS窗口中运行:

val = document.body.getBoundingClientRect();
console.log(val)
val.left += 10;
console.log(val)

或对返回值的任何其他修改。这个对象如何不可变?

这使得很难对元素的getBoundingClientRect()进行穿孔处理,从而更改原始值。尽管我想您可以重新创建对象,但我不知道JS甚至具有不可变对象的功能。这样对吗?

罗科·C·布尔扬

只是一个简单的例子:

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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

getBoundingClientRect的返回值如何不可变?

来自分类Dev

程序之间的getch(ncurses)返回值如何不同?

来自分类Dev

如何不持久化sqlSession.selectOne返回值?

来自分类Dev

如何不捕获函数的返回值

来自分类Dev

字符串如何不可变?

来自分类Dev

当表中不存在数据时,如何不返回值 0,SQLPLUS

来自分类Dev

如何可变引用不可变值

来自分类Dev

不可变的数据结构如何不是线程安全的?

来自分类Dev

返回值时,“每个”与“循环”有何不同?

来自分类Dev

如何从循环返回值?

来自分类Dev

如何从addEventListener返回值

来自分类Dev

如何模拟返回值?

来自分类Dev

如何从函数返回值

来自分类Dev

如何从对象返回值?

来自分类Dev

绑定返回值和可变参数模板

来自分类Dev

'NoneType'对象不可迭代-带返回值的循环

来自分类Dev

PTRACE_PEEKTEXT返回值和不可打印的字符

来自分类Dev

不能在不可变值上使用可变成员:函数调用返回不可变值 - 不确定为什么值是不可变的

来自分类Dev

GetHashCode() - 不可变的值?

来自分类Dev

如何从_calling_函数返回值?

来自分类Dev

如何模拟类的函数的返回值?

来自分类Dev

如何使Clojure的`while`返回值

来自分类Dev

如何终止递归函数并返回值

来自分类Dev

如何从EventEmitter函数返回值?

来自分类Dev

AnyObject的返回值如何!与AnyObject不同

来自分类Dev

如何从QMetaObject :: invokeMethod获取返回值

来自分类Dev

如何从React组件返回值?

来自分类Dev

AngularJS:如何从工厂获取返回值

来自分类Dev

如何处理AsyncTask的返回值