1

我对理解 javascript 面向对象的开发非常陌生。所以我正在阅读 jQuery 源代码并试图通过对我的自定义库实现相同的概念来理解,尽管目标不是复制代码,而是以 OOP 方式创建少数函数。这是我的代码..

(function (window) {
var myCustomClass = function () {
    debugger;
    return new myCustomClass.mycustomFunction.Init();
};
myCustomClass.mycustomFunction= myCustomClass.prototype = {
    Init: function () {
        return this;
    },
    alert: function () {
        alert('I got called');
    }
};
window.$ = window.mQuery = myCustomClass;
})(window);

并尝试以这种方式使用:

  mQuery().alert();

但它给出了一个错误,我试图弄清楚但无济于事。我想,我缺少一些概念,请指引我正确的方向。

4

1 回答 1

1

查看 jQuery 源代码并尝试模仿它的概念不一定是开始您的 javascript OOP 学习曲线的好方法。我建议您从一些更简单的基础书籍开始,然后在尝试从源代码中理解一个相当复杂的库之前逐步提高。

如果您正在寻找一种从构造函数“ jQuery 样式”链接函数的方法,您可以尝试以下简单模式作为入门:

var myCustomClass = function() {
    // initialize a new instance
    if(!(this instanceof myCustomClass)) {
        return new myCustomClass();
    }
};
myCustomClass.prototype = {
    constructor: myCustomClass,
    // add some custom methods
    alert: function() {
        window.alert.apply(window, arguments);
        return this;
    },
    write: function(str) {
        document.body.innerHTML = str;
        return this;
    }
};

myCustomClass().alert('foo').write('bar');

​</p>

于 2012-11-05T09:15:44.393 回答