扩展对象正在破坏我的代码.我能做什么
Extending Object is breaking my code. What can I do?
所以我写了一个辅助函数
Object.prototype.Where = function ( boofunc ) {
// Returns an object whose own properties are
// those properties p of this object that satisify
// the condition boofunc(p)
var that = new Object();
for ( var prop in this )
{
if ( this.hasOwnProperty(prop) && boofunc(this[prop]) )
that[prop] = this[prop];
}
return that;
}
我已经确定这会破坏我的代码,因为它会给我带来错误,比如
对象不支持属性或方法"exec"
在我包含的其他JavaScript文件中。问题是我已经用了100次这个函数了。。。所以我想知道是否有任何方法可以改变身体来解决问题。如果我必须去掉这个功能,把它改成之类的东西
function Where ( obj, boofunc )
{
var newobj = new Object();
for ( var prop in obj )
{
if ( obj.hasOwnProperty(prop) && boofunc(obj[prop]) )
newobj[prop] = obj[prop];
}
return newobj;
}
然后我必须遍历代码中的100个不同位置才能更改它。
我会在你的代码中更改它,使用regex并查找和替换,你可以很容易地完成大部分工作。这就是为什么你不应该修改本机对象,尤其是其他所有功能都继承自的Object。这意味着String.where()Function.where等可能会破坏你的代码。
此外,如果必须修改本机原型,则应首先检查该方法或属性是否尚未添加。
if( typeof Object.prototype.where === 'undefined' ){
Object.prototype.where = function where(){ ... }
}
相关文章:
- 有什么工具可以轻松读取javascript代码吗
- 我不知道为什么我的代码是错误的?又有什么错
- 这个代码在网页中的作用和要求是什么
- 什么'这个javascript代码getElementById有问题
- 问号在这段代码中是什么意思
- 什么'这是谷歌分析跟踪代码使用的技术
- 我不知道此代码中的这些符号是什么意思.十进制到二进制
- 此nodeValue替换代码有什么问题
- 什么正在取代我的'以及“;javascript代码中使用'和&”;
- 使用较少代码隐藏和显示选择菜单内容的更好方法是什么?javascript
- 我的CSS/Javascript下拉菜单测试代码出了什么问题
- 这个代码出了什么问题?(Jquery)
- 什么'这个javascript代码有错吗?(已关闭)
- 控制台中的“function floor(){[本机代码]}”是什么
- 在 Javascript 中实现解耦代码/回调的正确方法是什么?
- 这个代码是什么意思(history.replaceState和history.pushstate)
- 什么'这是一个神奇的javascript代码,用于以及如何创建它
- 这段代码的含义是什么<%=一些可变的%>
- 有人能解释一下evaluate()和dragAndDrop()在下面的角度测试代码中调用了什么吗
- 为什么这个 JQuery 代码什么都不返回