构造函数 附加指定对象中的方法,

a ={
  x:function(){console.log(1)}
}
function B(){
 this.y = function(){}
}

var b = new B();

b = {
 x:...,
 y:....
}

请问如何实现

阅读 1.6k
2 个回答

new 之前加一步,把对象a里的方法挂B的原型上。

Object.keys(a).forEach(function(v) {
    B.prototype[v] = a[v]
})
var b = new B()

你也可以new之后,把对象a里的方法直接复制到b里(当然这样可能会覆盖构造函数里的方法

var b = new B()
Object.keys(a).forEach(function(v) {
    b[v] = a[v]
})

如果你只是想简单的把 a.x 放入 b ,最简单的莫过于 b.x = a.x 了。因为你也没提具体需求,所以,不妨参考楼上大佬的。

推荐问题