gpt4 book ai didi

javascript - 从 JavaScript 构造函数返回公共(public)接口(interface)

转载 作者:行者123 更新时间:2023-11-28 13:41:03 27 4
gpt4 key购买 nike

我看到了以下从构造函数返回公共(public)接口(interface)的样式:

function AnObjectConstructor() {

function localFunc() {};
function publicFunc() {};

// public interface
var _this = {
publicFunc: publicFunc
};
return _this;
};

我喜欢这种风格,因为公共(public)接口(interface)显然在一个地方,而且 localFunc 可以在不使用 _this 的情况下访问 publicFunc

这段代码也可以这样写:

function AnObjectConstructor() {

function localFunc() {};
function publicFunc() {};

// public interface
var _this = this;
_this.publicFunc = publicFunc;
return _this;
};

这两种形式都旨在与 new 一起使用:

var obj = new AnObjectConstructor();
obj.publicFunc();

我不清楚这两种形式是否相同,希望有人能帮助我?

此外,任何对此风格的一般评论都将受到赞赏。

最佳答案

这两个片段没有做同样的事情。虽然两个代码段都具有对 publicFunc 的公共(public)引用,但第一个代码段返回对象文字,第二个代码段返回对函数的引用。这两个示例都不是创建函数构造函数的示例。您需要使用 new 关键字来实例化对象的实例:

function AnObjectConstructor() {
function localFunc() {};
function publicFunc() {};
// public interface
this.publicFunc = publicFunc;
//You don't need this line :return _this;
};

var obj = new AnObjectConstructor();

我还删除了 _this 的创建,因为没有理由创建局部变量并将 this 分配给它。

编辑

我认为第二种方法是首选,因为它是更传统的方法,利用了 JavaScript 构造对象的内置功能。第一种方法没有捕获要点,因为它只是一个返回精简对象文字的函数。

关于javascript - 从 JavaScript 构造函数返回公共(public)接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17800228/

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