const Hamburger = function(name) {
// this 是当前对象,则说明是用 new 创建的, 否则 this 应该是全局对象
if(this instanceof Hamburger) {
return new this[name]() // 这边将 this[name]() 就相当于 CHickenBuger() 返回对应的实例
// 如果不是用 new 创建的,就返回给他用 new 创建的 Hamburger 实例
return new Hamburger(name)
ChickenBuger: function() {
VeggieBurger: function() {
const chickenBuger = Hamburger('ChickenBuger')