在javascript中,是否有一种方法来创建所有对象的原型。一个简单的用例将是,我有一个函数:可能原型所有对象
testFn(el) {
if(el.isElement()) {
//Do something
}
}
在这里,我想测试是否传递到函数的对象是DOM元素。通常我会使用这个功能:
function isElement(el) {
if(typeof el == 'object' && 'nodeType' in el && el.nodeType === 1 && el.cloneNode) {
return true;
}
return false;
}
但是,我发现自己一遍又一遍地重写这段代码。如果我可以简单地创建Object的原型,并且可以随时为每个对象提供此功能,那么每当我需要它的时候都会很好。尽管原型对象似乎给我错误。
当你改变Object.prototype中,你可能会感觉不舒服的效果。是否有一部分对象,就像你自己定义的对象一样,你可以解决这个问题?否则,您运行的代码中的所有其他对象都将具有修改的原型,因此(如果您不使用ES5的Object.defineProperty)修改for..in上下文以进行迭代。 – dwerner 2012-04-26 04:44:26