javascript - getComputedStyle获得对象的属性不同浏览器下可枚举问题
怪我咯
怪我咯 2017-04-11 10:33:07
[JavaScript讨论组]

html:

<p id="myEle"></p>

js:

var obj=window.getComputedStyle(document.getElementById("myEle"),null);
console.log(obj.propertyIsEnumerable("width"));//火狐显示false。而chrome显示true

想请教:
1.w3c标准里规定它的那些css属性名作为键名的是否是可枚举的
2.我想深拷贝obj 如何是好,由于那些width height什么的都不可枚举了。导致比较常见的套路比如JSON.stringify(obj) 出来的东西都不包含这些了。而Object.create(obj)出来的新对象newObj里一片空白,只是在__proto__里包含了CSSStyleDeclaration对象

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(1)
伊谢尔伦

仅供参考

  1. w3c标准应该是不会规定哪些属性是可枚举,哪些属性是不可枚举的,这个因该是浏览器实现的时候出现差异化的原因。为啥说w3c不回规定属性的可枚举性呢?因为没必要,一般都是去get某个或某些属性的值,而非得到全部。

  2. 深拷贝虽然没被禁止,但程序员基本都已达成共识--尽可能不要做深拷贝操作。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号