来自defineProperty的getter函数不返回选择器

时间:2013-08-11 11:10:30

标签: javascript oop object properties 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);
    }
});

1 个答案:

答案 0 :(得分:1)

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

});

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

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