在JavaScript中的函数表达式(和构造函数)中创建新的Class()?

问题描述 投票:0回答:4

通过在此函数表达式中创建新的someClass(),每次调用someFunc()都会创建一个新的someClass吗?

const someFunc = new someClass().getOrSetOrWhatever()

相比,如果我照常写的话

let s = new someClass()
s.getOrSetOrWhatever()

并且如果我将第一个示例放入构造函数中,是否意味着将只有一个对象(每次我都调用this.someFunc)?不好的做法吗?预先感谢!

javascript function constructor expression new-operator
4个回答
0
投票

如果您这样写:

const someFunc = new someClass().getOrSetOrWhatever;

比someFunc将引用(指针)到someClass实例的方法(函数),如果您调用:

const someFunc = new someClass().getOrSetOrWhatever;    
someFunc();
...
someFunc();

与:

let s = new someClass()
s.getOrSetOrWhatever()
..
s.getOrSetOrWhatever()

0
投票

someFunc在这里只是一个变量。

[new someClass()将在您每次将someFunc编写为]时被调用>

const someFunc = () => new someClass().getOrSetWhatever()


0
投票

每次调用new someClass()都会创建someClass的新实例。 “ new”关键字使类的唯一“副本”生成新的唯一副本(实例)。


-1
投票

否,因为不会再次调用代码“ new someClass()”,所以不会每次都创建一个新实例

© www.soinside.com 2019 - 2024. All rights reserved.