使用公用的空函数而不是在每个类实例中创建一个新的空函数是否更有效?

多多夫

假设我有一个旨在为以后添加一些回调的类。

function myclass() {
    this.onSomething = function () {};
    this.onOtherThing = function () {};

    this.something = function () {
        // stuff
        this.onSomething();
    };

    this.otherThing = function () {
        // other stuff
        this.onOtherThing();
    };
}

我不能拥有this.onSomethingthis.onOtherThing存在,undefined或者null因为在something()中调用它们时otherThing()会抛出错误,指出它们的类型不是函数。

由于需要那些空函数,但它们使用内存,因此如果这样做,该类的内存使用效率会更高吗?

function myclass() {
    this.onSomething = empty;
    this.onOtherThing = empty;
    ...
}

function empty() {

}

这样,每个类实例的属性都指向同一个空函数,而不是每次都创建新函数。我假设定义一个空方法不会占用很多内存,但是...从技术上来说这更好吗?

科林

您为类的每个实例创建一个新函数这一事实是正确的。为了在所有实例之间共享它,您可以在类的原型上对其进行声明:

var MyClass = function() {
    this.something = function () {
        // stuff
        this.onSomething();
    };

    this.otherThing = function () {
        // other stuff
        this.onOtherThing();
    };
}

MyClass.prototype.onSomething = function() {};
MyClass.prototype.onOtherThing = function() {};

这样,所有实例将共享这些方法。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

调用一个空函数有多浪费?

来自分类Dev

我是否有一个空函数返回,使用python代码模块时我不知道?

来自分类Dev

是否有返回空函数中函数结果的目的?

来自分类Dev

一个类的多个实例,加载图像,使Java更有效

来自分类Dev

哪种策略更有效:创建一个新的套接字或使用已经创建的套接字?

来自分类Dev

python中的空函数对象

来自分类Dev

未定义不是构造函数试图在另一个内部创建一个类的新实例

来自分类Dev

为什么我的unique_ptr认为有一个空函数指针删除器?

来自分类Dev

非空函数中的return命令是否必要?

来自分类Dev

非空函数中的return命令是否必要?

来自分类Dev

卫兵的 Haskell 替代类和空函数

来自分类Dev

有没有办法可以把它变成一个函数或更有效的东西

来自分类Dev

Php - 创建一个在构造函数中具有依赖关系的类实例

来自分类Dev

空函数的实现

来自分类Dev

指向空函数的指针

来自分类Dev

具有非空函数的多线程

来自分类Dev

具有非空函数的多线程

来自分类Dev

空函数似乎从我的包装器中清除了一些类,但不是全部。试图找出问题所在

来自分类Dev

DataVisualization-ILSpy中的空函数体

来自分类Dev

如何在Jasmine中测试空函数?

来自分类Dev

从非空函数中释放内存

来自分类Dev

在PHP中使用声明空函数

来自分类Dev

如何使用atexit()注册非空函数?

来自分类Dev

如何使用atexit()注册非空函数?

来自分类Dev

如何使用ISNULL /空函数(VBA)

来自分类Dev

什么被认为是更好的Java代码?创建一个类变量并在每个函数中重用它,还是在每个函数中创建相同类型的新变量?

来自分类Dev

是否将在C#中为类的每个实例创建一个属性实例?

来自分类Dev

创建变量而不是在输出中使用运算是否更快(或更有效)?

来自分类Dev

C#如何在一个函数中创建类的实例,然后在另一个函数中使用相同的实例

Related 相关文章

  1. 1

    调用一个空函数有多浪费?

  2. 2

    我是否有一个空函数返回,使用python代码模块时我不知道?

  3. 3

    是否有返回空函数中函数结果的目的?

  4. 4

    一个类的多个实例,加载图像,使Java更有效

  5. 5

    哪种策略更有效:创建一个新的套接字或使用已经创建的套接字?

  6. 6

    python中的空函数对象

  7. 7

    未定义不是构造函数试图在另一个内部创建一个类的新实例

  8. 8

    为什么我的unique_ptr认为有一个空函数指针删除器?

  9. 9

    非空函数中的return命令是否必要?

  10. 10

    非空函数中的return命令是否必要?

  11. 11

    卫兵的 Haskell 替代类和空函数

  12. 12

    有没有办法可以把它变成一个函数或更有效的东西

  13. 13

    Php - 创建一个在构造函数中具有依赖关系的类实例

  14. 14

    空函数的实现

  15. 15

    指向空函数的指针

  16. 16

    具有非空函数的多线程

  17. 17

    具有非空函数的多线程

  18. 18

    空函数似乎从我的包装器中清除了一些类,但不是全部。试图找出问题所在

  19. 19

    DataVisualization-ILSpy中的空函数体

  20. 20

    如何在Jasmine中测试空函数?

  21. 21

    从非空函数中释放内存

  22. 22

    在PHP中使用声明空函数

  23. 23

    如何使用atexit()注册非空函数?

  24. 24

    如何使用atexit()注册非空函数?

  25. 25

    如何使用ISNULL /空函数(VBA)

  26. 26

    什么被认为是更好的Java代码?创建一个类变量并在每个函数中重用它,还是在每个函数中创建相同类型的新变量?

  27. 27

    是否将在C#中为类的每个实例创建一个属性实例?

  28. 28

    创建变量而不是在输出中使用运算是否更快(或更有效)?

  29. 29

    C#如何在一个函数中创建类的实例,然后在另一个函数中使用相同的实例

热门标签

归档