0

javascriptプロトタイプでは、メソッドが他のメソッドのプロパティにアクセスすることは可能ですか。たとえば、openメソッドでオプションを使用できるようにする方法はありますか。

function Plugin(element, options) {
    Modal = this;
    Modal.options = $.extend({}, defaults, options);
    Modal._defaults = defaults;
    Modal.init(Modal.element, Modal.options);
}


Plugin.prototype = {
    init: function(element, options) {
        console.log(options);
    },
    open: function() {
        //Does this function have access to options?
        //how to modify so that 'open' function has access to options
    }
}
4

3 に答える 3

1

最初のメソッドでthis._optionsとして保存します。

于 2013-01-02T19:31:12.623 に答える
1

いいえ。

ただし、すでにそれらを入れているthisので、と書くことができますthis.options

于 2013-01-02T19:31:13.010 に答える
0

まず第一にModal、暗黙のグローバルですが、これは意図的なものではないと思います。varローカルスコープに制限するために使用します。

function Plugin(element, options) {
    var Modal = this;
    Modal.options = $.extend({}, defaults, options);
    Modal._defaults = defaults;
    Modal.init(Modal.element, Modal.options);
}

次に、optionsコンストラクターによってインスタンスのプロパティとして追加されているため、プロトタイプメソッドでインスタンスにアクセスできます。

open: function() {
    console.log(options);
}
于 2013-01-02T19:38:19.540 に答える