来自defineProperty的Getter函数没有't返回选择器

Getter function from defineProperty doesn't return selector

本文关键字:返回 选择器 defineProperty Getter 函数 来自      更新时间:2023-09-26

我试图通过一个对象的getter函数返回一个选择器,该对象在创建后初始化。为什么我的财产"未定义"?我无法理解。。。

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);
    }
});
Object.defineProperty(Slider, 'currentSelector', {
get: function () {
    return $('.current', this.config.mySelector);
}

});

Object.defineProperty在Slider.init({...})之后定义当Slider.init触发时,currentSelector属性尚未定义,并返回undefined。

解决方案:请向上移动Object.defineProperty