javascript - 查看如何使用函数和函数,使用原型(prototype)

标签 javascript

我只是有点胡闹,试图模仿某些 jQuery 函数(尝试为 jQuery 函数编写普通的 javascript)我在这里做了这个

function ezWork(element) {
    if (typeof element === 'string') {
        document.getElementById(element);
        console.log('Got element');
    }
}


ezWork.prototype.on = function(event, callback) {
    if (typeof event === 'string') {

        if (event === 'click') {
            if(window.addEventListener) {
                element.addEventListener('mousedown', callback);
                alert('addEventListener called');
            } else if (window.attachEvent) {
                element.attachEvent('onmousedown', callback);
            } else {
                element.onmousedown = callback;
            }
        }
    }
}

ezWork('click').on('click', function(e) {
    e.preventDefault();
    alert('Worked');
});

http://jsfiddle.net/aJmMa/

我只是好奇为什么我得到 .on is not defined(我这样做是根据我认为应该做的方式,而不是如果我知道这是正确的方法,我'我只是想学习,做我想做的向函数添加函数的正确方法是什么?)

非常感谢您的帮助!

我现在得到的错误是,'.on' 没有定义。

最佳答案

var ezWork = (function(win, doc) {

  // Constructor
  function EzWork(element) {
    this.element = this._init(element);
  }

  EzWork.prototype = {
    _init: function(element) {
      return doc.getElementById(element);
    },

    on: function(event, callback) {
      // simplified...
      this.element.addEventListener(event, callback);
    }
  };

  // Shortcut to create a new instance without using 'new'
  return function(element) {
    return new EzWork(element);
  };

}(window, document));

ezWork('click').on('click', function(e) {
  e.preventDefault();
  alert('Worked');
});

演示: http://jsbin.com/oquduf/2/edit

关于javascript - 查看如何使用函数和函数,使用原型(prototype),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16007259/

相关文章:

javascript - 何时在 javascript 函数中使用括号

javascript - 在不同的 JS 文件中组织函数的最佳方式是什么?

javascript - 模块构建失败: SyntaxError: Unexpected token

javascript - 如何在 chart.js 中从 Canvas 制作内部填充?

javascript - 使用 jQuery 动态显示多个内容

javascript - Android 播放一次音频

javascript - 检测字符串末尾的两个连续回车符

javascript - jQuery 是级联的吗?如果不是,为什么我的代码不起作用?

javascript - 我根本无法让 cytoscape.js 显示我的图表

javascript - 如何从页面中间向右侧画一条线?