gpt4 book ai didi

javascript - 方法重写无法正常工作

转载 作者:行者123 更新时间:2023-11-28 02:23:03 24 4
gpt4 key购买 nike

我正在尝试使用以下代码动态重写该方法。

"use strict";

define(function (require) {
var Backbone = require('backbone');

var TestView = Backbone.View.extend({

initialize: function () {
var that = this;
that.model.on("change", this.render, this);
},

render: function () {
this.initialRender();
this.$el.html("Work to do everytime");

this.render = function () {
this.$el.html("Work to do everytime");
}
},
initialRender: function () {
console.log("Work to do once only");
}

});

var model = new Backbone.Model();
var view = new TestView({
model: model
});

view.render();
view.render();

view.model.set("testdata", "data");
});

我想要这个输出:

Work to do once only

但是我得到了这个输出:

Work to do once only
Work to do once only

谁能解释一下究竟发生了什么?

最佳答案

问题是您的事件处理程序已经绑定(bind)到渲染函数的原始版本。替换 this.render 引用并不会改变这一事实。

Derick Bailey 写了 blog post描述问题。

关于javascript - 方法重写无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15356970/

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