首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript HasOwnProperty聚填充

Javascript HasOwnProperty聚填充
EN

Stack Overflow用户
提问于 2020-10-04 15:09:31
回答 1查看 498关注 0票数 0

我知道这听起来可能是个荒谬的、不必要的问题,但事实并非如此。

https://caniuse.com/?search=Hasownproperty显示100%的跟踪桌面客户端支持,这是您的预期。但是,转向跟踪移动客户端显示的支持率仅为95.4%,令人震惊的是,考虑到移动客户端甚至超过了桌面客户端,这意味着大约2.5%的当前访问网页的客户端不支持hasOwnProperty

考虑到有大量的第三方库,包括jQuery、现代派和克罗克福德的json2.js引用了hasOwnProperty,而不是多填充的,所以填充这个非常重要。

我正在寻找一种方法来填充hasOwnProperty根据规格。它可以使用for in循环进行浅层次的填充(尽管不正确),但不会返回继承属性的false

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-04 15:21:02

请查看object.hasOwnProperty的填充部分

这就是实现

代码语言:javascript
复制
(function(w){
var isFunction=w.isFunction||(w.isFunction=function(x){return typeof(x)==='function'}),
has=w.has||(w.has=function(o,p){var e=p in o;return {value:e && (e=o[p]) && true,refer:e,valueOf:function(){return this.value}}}),
Polyfill=w.PolyfillMethod||(w.PolyfillMethod=function(o,p,x){var e=has(o,p);if(e && (e=isFunction(e.refer))===false){o[p]=x};return e}),
theProto=w.Object.prototype;

Polyfill(theProto,'hasOwnProperty',function(x){var o,e=this,p=String(x);return p in e && (o=e.__proto__||e.constructor.prototype,(p in o ===false)||e[p]!== o[p])});

})(window);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64196280

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档