花了3个小时试图找到
的来源
Object doesn't support property or method 'exec'
我收到了,这会产生更多错误,我已将其缩小到我的功能
Object.prototype.OwnPropsEqualTrue = function ( )
{
var true_props = [];
for ( var this_prop in this )
{
if ( this.hasOwnProperty(this_prop) && this.this_prop === true )
{
true_props.push(this_prop);
}
}
return true_props;
}
用于对象操作的是字符串到布尔值的映射,例如
{ "SomeBoolean" : true, "SomeOtherBoolean" : false, "IsInChicago" : false }
由于某种原因,此函数的存在导致我提到的错误并指向
if(isCurrentExternalUser=isExternalUser(),isCurrentExternalUser&&BindClickOnO365SettingsMenu(),isBizStampingDlg=!1,window.location.href.indexOf("IsDlg=1")>-1&&(window.location.href.search(/Upload.aspx/i)>-1||window.location.href.search(/UploadEx.aspx/i)>-1)?(isBizStampingDlg=!0,isUploadDialog=!0):isUploadDialog=!1,window.location.href.indexOf("IsDlg=1")>-1&&window.location.href.search(/aclinv.aspx/i)>-1?(isBizStampingDlg=!0,isSharingDialog=!0):isSharingDialog=!1,isRightToLeft=$("html:first").attr("dir")=="rtl"?!0:!1,uiVersion==15||!isBizStampingDlg)
SharePoint中的JavaScript库行。
有人可以帮我理解我在这里做错了什么吗?浏览器是IE,顺便说一句。
答案 0 :(得分:1)
如果你必须向Object原型添加一个方法(你可能不应该),请用Object.defineProperty
添加它:
Object.defineProperty(Object.prototype, "ownTrueProperties", {
value: function() {
return Object.keys(this).filter(function(key) {
return this[key] === true;
}, this);
}
});
这将使该属性不可枚举,因此不会弄乱for ... in
循环。