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

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 了。因为你也没提具体需求,所以,不妨参考楼上大佬的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题