Use of .apply() with 'new' operator. Is this possible?

后端 未结 30 3388
Happy的楠姐
Happy的楠姐 2020-11-22 00:39

In JavaScript, I want to create an object instance (via the new operator), but pass an arbitrary number of arguments to the constructor. Is this possible?

30条回答
  •  感动是毒
    2020-11-22 01:09

    Matthew Crumley's solutions in CoffeeScript:

    construct = (constructor, args) ->
        F = -> constructor.apply this, args
        F.prototype = constructor.prototype
        new F
    

    or

    createSomething = (->
        F = (args) -> Something.apply this, args
        F.prototype = Something.prototype
        return -> new Something arguments
    )()
    

提交回复
热议问题