gpt4 book ai didi

javascript - (看似)类中函数的冗余命名

转载 作者:行者123 更新时间:2023-11-29 22:27:21 27 4
gpt4 key购买 nike

我见过对象创建的各种模式,但在深入研究 Firefox 框架 Javascript 后,我​​注意到他们使用的是我以前从未见过的约定,我希望这里有人可以确认我的假设或纠正我:

在构建类时,我过去曾这样做过(及其变体):

function MyClass() {
this.myPublicFunction = function() {
};
var myPrivateFunction = function() {
};
}

绑定(bind)匿名函数。凉爽的。这是我在大多数框架等中看到的。

但是,Mozilla 似乎是这样做的:

function MyClass() {
this.myPublicFunction = function MYCLASS_myPublicFunction() {
};
var myPrivateFunction = function MYCLASS_myPrivateFunction() {
};
}

我的假设是,在使用后一种约定时,JS JIT 会编译函数,但不会选择前两个函数,因为它们是在运行时而不是解析时定义的。

这个假设是否正确?如果是,这是否也适用于其他 JS 引擎或仅适用于 Spidermonkey?

最佳答案

使用 NFE 的原因:

  • 带有名称的函数在您的堆栈跟踪中提供更多调试信息
  • NFE 是 self 记录的。 (如果您在名称中包含有用的信息)。

请注意,函数声明优于 NFE。 (来自个人风格的选择)

function MyClass() {
this.myPublicFunction = myPublicFunction;

function myPrivateFunction() {

}

function myPublicFunction() {

}
}

另请注意,“私有(private)”一词具有误导性,但这是一个切线。

关于javascript - (看似)类中函数的冗余命名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8717774/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com