在创建时设置 Javascript 对象值

Set Javascript object value at time of creation

本文关键字:对象 Javascript 设置 创建      更新时间:2023-09-26

是否可以将一个对象的键$thumbnailContainer设置为同一对象gallerySelectorsthumbnailImg的另一个对象的值?

例:

var gallerySelectors = {
    '$thumbnailContainer' : $('#thumb'),
    'thumbnailImg' : this.$thumbnailContainer.find('img')
};

不,不幸的是,没有。幸运的是,替代方案同样简单:

var gallerySelectors = {
    $thumbnailContainer: $('#thumb')
};
gallerySelectors.thumbnailImg = gallerySelectors.$thumbnailContainer.find('img');

如果问题是您要内联传递对象,您还可以创建一个函数来为您执行此操作。

不,因为在你显示的情况下this不会被绑定到对象。

我认为没有办法做到这一点。

你可以试试

var gallerySelectors = {
    '$thumbnailContainer' : $('#thumb'),
    'thumbnailImg' : gallerySelectors.$thumbnailContainer.find('img')
};                     ^--------------- NOTE!!!

但我不确定我是否会相信这在任何地方都有效。我想您必须查看语言规范以查看成员是否始终保证按顺序初始化。

我只会采取简单的路线:

var gallerySelectors = {
    '$thumbnailContainer' : $('#thumb'),
    'thumbnailImg' : $('#thumb').find('img')
};