JavaScript 对象原型错误
2013-11-25
728
我需要为对象添加新方法。我正在尝试创建它:
Object.prototype.getByPath = function (path, other) {
for (var i=0, obj=this, path = path.split('.'), len=path.length; i<len; i++) {
obj = obj[path[i]];
}
return (typeof obj === "undefined" || obj == "") ? other : obj;
}
但是此代码返回错误(与另一个 js 文件冲突!):
Uncaught TypeError: Object function (path, other) {
另一个 js 文件以此行开头:
(function(){function d(a,b){
try {
for (var c in b)
Object.defineProperty(a.prototype, c, {value:b[c],enumerable:!1})
} catch(d) {
a.prototype = b
}
}());
我该如何解决此错误?
1个回答
Conflict with another js file!
是的,这是因为它正在向所有对象添加新方法,而是尝试为所有客户端 javascript 对象创建自己的基对象,
var yourBaseObj={
getByPath :function (path, other) {
for (var i=0, obj=this, path = path.split('.'), len=path.length; i<len; i++) {
obj = obj[path[i]];
}
return (typeof obj === "undefined" || obj == "") ? other : obj;
}
}
然后你为其他对象使用它,
function YourNewObject(){
}
YourNewObject.prototype=yourBaseObj
Jayantha Lal Sirisena
2013-11-25