[英]How to achieve JavaScript Object inheritance?
I want create a new JavaScript object based on an existing JavaScript object. 我想基于现有的JavaScript对象创建一个新的JavaScript对象。
Till now my research led me to jQuery extend function. 直到现在,我的研究使我开始使用jQuery扩展功能。
example: 例:
var object1 = {
name:'same name',
age:'1',
occupation:'programmer'
}
var object2 = {
name:'same new name'
}
Now, when I call: 现在,当我打电话给:
$.extend({},object1,object2);
it works perfectly, my problem is when I have object member within the object! 它完美地工作,我的问题是当对象中有对象成员时!
var object1 = {
name:'same name',
age:19,
occupation:'programmer',
parent:{
name:'parent name',
age:35
}
}
var object2 = {
name:'same new name',
parent:{
age:40
}
}
Now, when I call 现在,当我打电话
$.extend({},object1,object2);
object1.parent is: object1.parent是:
{
age:40
}
I want it to be: 我希望它是:
{
name:'same new name',
age:40
}
Is there a way to achieve this? 有没有办法实现这个目标?
对jQuer.extend()方法使用deep参数,您的代码应为:
$.extend(true,{},object1,object2)
您要做的是进行深度扩展
$.extend(true, {},object1,object2);
You can force $.extend
to do a deep copy like so: 您可以强制$.extend
进行深拷贝,如下所示:
$.extend(true, {},object1,object2);
although $.extend
doesn't create an inheritance hierarchy so much as it just copies properties. 尽管$.extend
并不会创建继承层次结构,而只是复制属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.