gpt4 book ai didi

javascript - 调用父对象函数

转载 作者:行者123 更新时间:2023-11-29 10:16:32 25 4
gpt4 key购买 nike

Creator 类生成他的 Childs。如果点击 Child,调用 Creator 的 ClickedOnMyChild 的最佳方式是什么?

function Creator()
{
var c1 = new Child("Albert");
var c2 = new Child("Sarah");

var ClickedOnMyChild = function()
{
//alert name of child
}
}

function Child(name)
{
this.name = name;

function ClickHandler()
{
// a click on me, better call my Creator
}
}

到目前为止我的想法:

  1. static Creator(不,我需要实例)
  2. 在 Child 中触发自定义事件(我目前最喜欢的)
  3. 将父实例传递给子实例(不是一个好的做法)

最佳答案

我会选择第二个:Trigger Custom Event in Child。因为它不仅允许您处理父级中的事件,还可以处理对该事件感兴趣的任何对象

下面是一个示例代码:

    function Event(sender) {
this._sender = sender;
this._listeners = [];
}

Event.prototype = {
attach: function (listener) {
this._listeners.push(listener);
},
notify: function (args) {
for (var i = 0; i < this._listeners.length; i++) {
this._listeners[i](this._sender, args);
}
}
};

function Creator()
{
var c1 = new Child("Albert");
var c2 = new Child("Sarah");

c1.click.attach(function (sender,args){
//alert name of child
alert(args);
});

c2.click.attach(function (sender,args){
//alert name of child
alert(args);
});
}

function Child(name)
{
this.name = name;
this.click = new Event(this);

var _this = this;
function ClickHandler()
{
_this.click.notify(_this.name);
}
}

引用链接:http://alexatnet.com/articles/model-view-controller-mvc-javascript

关于javascript - 调用父对象函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20268473/

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