Javascript 何时过滤原型链?

Javascript 何时过滤原型链?,javascript,underscore.js,Javascript,Underscore.js,我注意到,的实现将复制所有内容,包括原型链 我注意到它将过滤掉原型链上的属性 我本来希望.extend在默认情况下过滤掉原型链上的属性。如果是这样的话,.extend的实现中,每个可以使用两次,而不是一次 为什么原型链没有在.extend中进行过滤,就像在.each中一样?文档没有提到它是否读取原型链 从他们的代码,.clone方法中,他们使用.extend创建浅拷贝。这可能是\uux.extend读取原型链的真正原因。。。这不是一个好理由。但是,我从不使用。

我注意到,的实现将复制所有内容,包括原型链

我注意到它将过滤掉原型链上的属性

我本来希望
.extend
在默认情况下过滤掉原型链上的属性。如果是这样的话,
.extend
的实现中,每个可以使用两次,而不是一次


为什么原型链没有在
.extend
中进行过滤,就像在
.each
中一样?

文档没有提到它是否读取原型链

从他们的代码,
.clone
方法中,他们使用
.extend
创建浅拷贝。这可能是
\uux.extend
读取原型链的真正原因。。。这不是一个好理由。但是,我从不使用
传递原始对象以外的任何东西

克隆需要它的原因示例

function Base(a) {
    this.a = a;
}

Base.prototype = {b: 'b'};    
var obj = new Base('a')

console.log($.clone({x: 'x'}, obj))

// Most people would expect the output to be
// {x: 'x',  a: 'a', b: 'b'}

// If it didn't read the prototype, it would only be
// {x: 'x',  a: 'a'}

这对你有关系吗?这将是一个更好的问题,否则,这对Soy来说太理论化了。如果您联系开发人员,您可能会得到更好的答案。