gpt4 book ai didi

javascript:如何同时在方法和构造函数上下文中调用函数?

转载 作者:行者123 更新时间:2023-12-03 11:59:05 25 4
gpt4 key购买 nike

我想说:

 var b = new a.B();

其中a是一个对象。我希望方法 B 能够引用调用对象 a 和新创建的对象 b

通常,第一个引用是通过方法上下文实现的,第二个引用是通过构造函数上下文实现的。两个上下文都将引用的对象绑定(bind)到 this 关键字。

但是我如何在一次调用 B 期间引用它们呢?

用例:

假设我编写了一个库,允许用户轻松地将我的小部件插入他的网页中。加载后,我的库将单个名称导出到全局命名空间:Toolbar,它是一个构造函数,用于在用户的网页元素中创建我的小部件,称为 parent_dom_element:

var toolbar1 = new Toolbar(parent_dom_element);

现在,在我的小部件中,对应于 toolbar1 对象,用户可以创建如下子小部件:

var comment = new toolbar1.Comment();

我希望构造函数 Comment 能够引用 toolbar1 对象并同时充当构造函数,如下所示:

Toolbar.prototype.Comment = function (toolbar, ){
this.attr1 = toolbar.attr1;
};

如何实现这一目标?

最佳答案

您必须在 Toolbar 上下文中定义一个指向“this”的 var,并在 Toolbar 构造函数中定义 Comment 构造函数。这样,Comment 构造函数就可以访问“toolbar”变量。

var Toolbar = function () {
var toolbar = this; // toolbar = Toolbar instance
this.attr1 = ""; // this = Toolbar instance

this.Comment = function () {
this.attr1 = toolbar.attr1; // this = Comment instance;
};
};

var toolbar1 = new Toolbar();
var comment = new toolbar1.Comment();

关于javascript:如何同时在方法和构造函数上下文中调用函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25483882/

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