首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >javascript原型-添加回调

javascript原型-添加回调
EN

Stack Overflow用户
提问于 2012-07-21 03:00:53
回答 4查看 1.9K关注 0票数 4

我使用的是javascript揭示原型模式,并且我想添加一个回调。我正在尝试类似这样的东西:

http://jsfiddle.net/Qyhrb/2/

代码语言:javascript
复制
  var Refinements = function () { };

  Refinements.prototype = function () {
    Init = function () {
      $('.btn').click(Callback);
    },
    Callback = function(){
      alert('default function');
    };
    return { Init: Init, Callback : Callback };
  }();


   var refinements = new Refinements();
   refinements.Callback = function(){ alert('new method'); };
   refinements.Init();

本质上,我想要做的是将一个回调传递到对象中,并在事件发生时引发该回调。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-07-21 03:10:13

代码语言:javascript
复制
    Init = function () {
        var refinement = this;
        $('.btn').click(refinement.Callback || Callback);
    },

Fiddle

票数 5
EN

Stack Overflow用户

发布于 2012-07-21 03:12:28

代码语言:javascript
复制
var Refinements = function() {};

Refinements.prototype = function() {
  return {
    init: function() {
      $('.btn').click(this.callback);
    },
    callback: function() {
      alert('default function');
    }
  }
}();


var refinements = new Refinements();
refinements.callback = function() {
  alert('new method');
};
refinements.init();
票数 1
EN

Stack Overflow用户

发布于 2012-07-21 03:13:23

当我分离出原型函数,并删除return { Init: Init, Callback : Callback };片段时,一切似乎都很正常。

代码语言:javascript
复制
function Refinements() {}

Refinements.prototype.Init = function() {
    $('.btn').click(this.Callback);
};

Refinements.prototype.Callback = function() {
    alert('default function');
};


var refinements = new Refinements();
refinements.Callback = function(){ alert('new method'); };
refinements.Init();​

http://jsfiddle.net/Qyhrb/8/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11585442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档