0

作成後に初期化されるオブジェクトからゲッター関数を介してセレクターを返そうとしています。プロパティが「未定義」なのはなぜですか? これじゃ頭が回らない…

http://jsfiddle.net/micka/fBPxG/

HTML:

<div class="current"></div>

JS:

var Slider = {
    init: function (config) {
        this.config = config;
        console.log('this should be the div with a class of current', this.currentSelector)
    }
};

Slider.init({
    mySelector: $('div')
});

Object.defineProperty(Slider, 'currentSelector', {
    get: function () {
        return $('.current', this.config.mySelector);
    }
});
4

1 に答える 1

1
Object.defineProperty(Slider, 'currentSelector', {
get: function () {
    return $('.current', this.config.mySelector);
}

});

Object.defineProperty が後で定義されるSlider.init({...}) Slider.init がトリガーされると、currentSelector 属性が定義されておらず、undefined が返されます。

解決策: Object.defineProperty を上に移動してください

于 2013-08-11T12:19:09.990 に答える