【发布时间】:2015-11-22 13:03:45
【问题描述】:
我今天遇到了这个问题:
我想用一些有用的功能扩展一个 JavaScript Object 类,所以我写了这样的东西:
Object.prototype.fn = function() {
// Do some cool stuff...
};
然后我使用另一个函数来做这样的循环:
for( var i in obj ) {
this[i] = obj[i]; // 'this' --> is another Object
console.log( i, obj[i] );
}
所以我把东西从'obj'移到另一个对象。但是,正如您在日志中看到的那样,“fn”函数现在要么在我的扩展对象中,要么在 __proto__ 中。我只想在我的“for”循环中避免这种情况:
if( typeof obj[i] !== 'function' ) // Then do it
所以我想知道如何实现原生函数(例如 toString())以在原型之外保持不可见。有什么建议吗?
【问题讨论】:
标签: javascript object prototype