JS继承与原型_.extend的含义

时间:2015-08-27 19:11:01

标签: underscore.js prototypal-inheritance

我的一个朋友问我,如果你只使用下划线扩展函数,为什么要做一个正确的原型继承呢?

_.extend(A.prototype, B.prototype)

这种方法有任何负面影响吗?

1 个答案:

答案 0 :(得分:0)

如果您希望按prototype创建对象,则只能使用object

function A(){
    this.a = 1;
    this.b = 2;
};

var B = {
    b : 'b',
    c : 'c'
};

_.extend(A.prototype, B);
var a = new A;

在这种情况下,_.extend将以您(或您的朋友=))的方式工作:对象a有属性a& b
a - underscore

但在原型链中,对象a具有属性c
a.c - underscore

但是,当JS为此提供标准功能时,为什么要使用underscore