在软件中,我们通常使用'extends'这个词来指代超类的子类,但是当系统地'扩展'对象的属性而不是类时,是否有好的术语?
例如,在JavaScript中,如果我有这样的对象:
var foo = {
property1:'',
property2:''
}
然后我有:
var bar = {
property3:''
}
如果我将bar的属性添加到foo的属性,这就是我的意思。
答案 0 :(得分:1)
无论出于何种原因,已采用术语extend
将一个对象中的属性添加到另一个对象中。 jQuery这样做,但它可能不是第一个。 Underscore使用相同的术语:
_.extend(myObj, {newProp1: 1})
$.extend(myObj, {newProp1: 1})
另一方面,Ember在子类化意义上使用extend
,添加属性的API为Ember.merge
。
ES6版本称为assign
:
Object.assign(myObj, {newProp1: 1})
没有标准的术语,也没有标准的方法来区分扩展对象与新属性的概念,并在子类化的意义上扩展一个类。
答案 1 :(得分:1)
您可以称之为合并或扩展。你可以扩展"另一个具有如下函数的对象:
function merge(obj1, obj2) {
for(var key in obj2) {
obj1[key] = obj2[key];
}
}
PS。 Prototypal继承是你的朋友。