Javascript 扩展,但用于对象而不是类
在软件中,我们通常使用“扩展”一词来指代超类的子类化,但是当以系统的方式“扩展”对象而不是类的属性时,是否有好的术语可以使用 例如,在JavaScript中,如果我有这样一个对象:Javascript 扩展,但用于对象而不是类,javascript,Javascript,在软件中,我们通常使用“扩展”一词来指代超类的子类化,但是当以系统的方式“扩展”对象而不是类的属性时,是否有好的术语可以使用 例如,在JavaScript中,如果我有这样一个对象: var foo = { property1:'', property2:'' } 那么我有: var bar = { property3:'' } 如果我将bar的属性添加到foo的属性中,这就是我的意思。无论出于何种原因,都采用术语extend将一个对象中的属性添加到另一个对象中。jQuery做到了这一
var foo = {
property1:'',
property2:''
}
那么我有:
var bar = {
property3:''
}
如果我将bar的属性添加到foo的属性中,这就是我的意思。无论出于何种原因,都采用术语
extend
将一个对象中的属性添加到另一个对象中。jQuery做到了这一点,但这可能不是第一次。下划线使用相同的术语:
_.extend(myObj, {newProp1: 1})
$.extend(myObj, {newProp1: 1})
另一方面,Ember在子类化的意义上使用extend
,用于添加属性的API是Ember.merge
ES6版本称为assign
:
Object.assign(myObj, {newProp1: 1})
没有标准术语和标准方法来区分使用新属性扩展对象和从子类化的角度扩展类的概念。您可以称之为合并或扩展。您可以使用以下函数使用另一个对象“扩展”对象:
function merge(obj1, obj2) {
for(var key in obj2) {
obj1[key] = obj2[key];
}
}
PS.原型遗传是你的朋友。你能更具体一点你的意思吗?也许你正在寻找。编辑后,我知道您正在寻找原型,因为这是JavaScript中的扩展机制。
bar.constructor.prototype=Object.create(foo)
??@Alex Object mens实例变量的属性。您可能应该在标记中只使用JavaScript
。