Javascript:将构造函数作为变量中的引用传递并调用此构造函数

用户名

我需要将对类的构造函数的引用存储在变量中,然后再构造对象。这是我的最小代码示例:

function A() {
  var _foo = "A";
}

function Wrapper( constructorFunc  ) {
  var _constructorFunc = constructorFunc;

  this.constructorFunc = function() {
    return _constructorFunc;
  }
}

var wrapper = new Wrapper( A.constructor );
var cFunc = wrapper.constructorFunc();
var obj = new cFunc(); /* obj should be an A now */

我希望很清楚我想做什么。Firebug控制台显示错误TypeError: cFunc is not a constructor正确的方法是什么?

此外,我必须能够“比较”构造函数,即我需要知道两个引用是否指向同一个构造函数。(在C ++中,这是可能的,因为可以比较函数的地址。)例如:

function A() {
  var _foo = "A";
}

function B() {
  var _bar = "B";
}

function Wrapper( constructorFunc  ) {
  var _constructorFunc = constructorFunc;

  this.constructorFunc = function() {
    return _constructorFunc;
  }
}

var wrapper1 = new Wrapper( A.constructor );
var wrapper2 = new Wrapper( A.constructor );
var wrapper3 = new Wrapper( B.constructor );

wrapper1.constructorFunc() == wrapper2.constructorFunc() /* should evaluate to true */
wrapper1.constructorFunc() == wrapper3.constructorFunc() /* should evaluate to false */

这可能吗?

丹尼斯·塞古雷

构造函数是A,因此您必须更改

var wrapper = new Wrapper( A.constructor );

var wrapper = new Wrapper( A );

您可以使用以下方法测试结果

console.log(obj instanceof A);

对于第二个问题:没有什么可以阻止您比较构造函数(或任何函数):两个函数相同时是相等的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将参数化的构造函数作为方法引用传递

来自分类Dev

将类引用作为构造函数参数传递

来自分类Dev

在构造函数中引用此指针

来自分类Dev

将引用传递给构造函数

来自分类Dev

是否需要初始化在Javascript中作为“类”构造函数参数传递的变量?

来自分类Dev

是否需要初始化在Javascript中作为“类”构造函数参数传递的变量?

来自分类Dev

JavaScript 构造函数侦听此变量更改

来自分类Dev

对象构造函数作为Javascript中的函数

来自分类Dev

对象构造函数作为Javascript中的函数

来自分类Dev

C ++通过构造函数中的引用传递

来自分类Dev

Angular 2将变量传递给html中的构造函数

来自分类Dev

将数组作为类构造函数的函数参数传递

来自分类Dev

将数组作为类构造函数的函数参数传递

来自分类Dev

Java-将数组直接传递给构造函数,而不是作为变量传递

来自分类Dev

调用构造函数作为方法

来自分类Dev

如何传递副本构造函数作为方法引用?

来自分类Dev

在构造函数中调用重载构造函数

来自分类Dev

如果通过引用对象代替函数中的变量,它是否调用复制构造函数?

来自分类Dev

构造函数中的调用函数

来自分类Dev

std :: thread通过引用传递调用复制构造函数

来自分类Dev

std :: thread通过引用传递调用复制构造函数

来自分类Dev

在javascript中访问构造函数中的变量

来自分类Dev

引用此的javascript构造函数未更新属性

来自分类Dev

如何将值传递给此构造函数?

来自分类Dev

从 Codeigniter 中的其他函数调用构造函数中的变量

来自分类Dev

通过引用从函数调用的C ++构造函数

来自分类Dev

通过引用从函数调用的C ++构造函数

来自分类Dev

Haskell构造函数作为函数变量

来自分类Dev

C ++将Const对象引用传递给构造函数

Related 相关文章

  1. 1

    将参数化的构造函数作为方法引用传递

  2. 2

    将类引用作为构造函数参数传递

  3. 3

    在构造函数中引用此指针

  4. 4

    将引用传递给构造函数

  5. 5

    是否需要初始化在Javascript中作为“类”构造函数参数传递的变量?

  6. 6

    是否需要初始化在Javascript中作为“类”构造函数参数传递的变量?

  7. 7

    JavaScript 构造函数侦听此变量更改

  8. 8

    对象构造函数作为Javascript中的函数

  9. 9

    对象构造函数作为Javascript中的函数

  10. 10

    C ++通过构造函数中的引用传递

  11. 11

    Angular 2将变量传递给html中的构造函数

  12. 12

    将数组作为类构造函数的函数参数传递

  13. 13

    将数组作为类构造函数的函数参数传递

  14. 14

    Java-将数组直接传递给构造函数,而不是作为变量传递

  15. 15

    调用构造函数作为方法

  16. 16

    如何传递副本构造函数作为方法引用?

  17. 17

    在构造函数中调用重载构造函数

  18. 18

    如果通过引用对象代替函数中的变量,它是否调用复制构造函数?

  19. 19

    构造函数中的调用函数

  20. 20

    std :: thread通过引用传递调用复制构造函数

  21. 21

    std :: thread通过引用传递调用复制构造函数

  22. 22

    在javascript中访问构造函数中的变量

  23. 23

    引用此的javascript构造函数未更新属性

  24. 24

    如何将值传递给此构造函数?

  25. 25

    从 Codeigniter 中的其他函数调用构造函数中的变量

  26. 26

    通过引用从函数调用的C ++构造函数

  27. 27

    通过引用从函数调用的C ++构造函数

  28. 28

    Haskell构造函数作为函数变量

  29. 29

    C ++将Const对象引用传递给构造函数

热门标签

归档