使用对象方法实例化新对象javascript

使用对象方法实例化新对象javascript,javascript,object,Javascript,Object,我正在尝试为一个对象编写一个方法,该方法可以创建一个单独对象的新实例。javascipt可以做到这一点吗 function Library () { this.name = "My Library"; this.createShelf = function () { <some code> }; } function Shelf (shelfNumber) { this.shelfNumber = shelfNumber; } var myLib =

我正在尝试为一个对象编写一个方法,该方法可以创建一个单独对象的新实例。javascipt可以做到这一点吗

function Library () {
  this.name = "My Library";
  this.createShelf = function () {
       <some code>
  };
}

function Shelf (shelfNumber) {
  this.shelfNumber = shelfNumber;
}

var myLib = new Library();
myLib.createShelf();
函数库(){
this.name=“我的图书馆”;
this.createShelf=函数(){
};
}
功能架(shelfNumber){
this.shelfNumber=shelfNumber;
}
var myLib=新库();
myLib.createShelf();

是否可以使用库中的方法创建一个新的Shelf实例?

是的。。你可以。只需修改代码即可返回
工具架
对象

function Library () {
   this.name = "My Library";
   this.createShelf = function (n) {
       return new Shelf(n);
   }
}
那你就可以这么做了

var myLib = new Library();
var shelf = myLib.createShelf(number);

Object.create的另一个可能用法是克隆不可变对象

    function Library () {
      this.name = "My Library";
      this.createShelf = function () {
       <some code>
  };
}

    var newObject = Object.create(Library());

     newObject.createShelf();
函数库(){
this.name=“我的图书馆”;
this.createShelf=函数(){
};
}
var newObject=Object.create(Library());
newObject.createShelf();

是,这正在工作。我想我遗漏了return关键字。谢谢大家!@jacobbarnett很高兴能够帮助您:)有没有一种方法可以编写该方法,使新创建的工具架成为Library对象的属性?我在想图书馆之类的东西