Javascript 在缓存对象文本中的元素时使用find()的语法

Javascript 在缓存对象文本中的元素时使用find()的语法,javascript,Javascript,定义$item:的正确语法是什么 到目前为止,我已经: var Animations = { el: { $body: $('html, body'), $landing: $('.landing'), $item: $landing.find($('.item')) }, init: function() { ..etc } } 我尝试过使用这个和动画.el//元素//,但无法读取属性

定义
$item:
的正确语法是什么

到目前为止,我已经:

var Animations = {

    el: {
        $body:      $('html, body'),
        $landing:       $('.landing'),
        $item:      $landing.find($('.item'))
    },

    init: function() { ..etc }
}
我尝试过使用
这个
动画.el//元素//
,但无法读取属性。

尝试使用这个:

(...)
$item: this.Animations.el.$landing.find($('.item'))
(...)

您不能在对象文字中引用对象文字的成员(因为它在您尝试这样做时未完全构造),如下所示:

$landing
未定义

init()
方法中分配给
$item

init: function() { 
    this.el.$item = this.el.$landing.find($('.item'));
}

在初始化外部编写

var Animations = {
    el: {}
};

Animations.el.$body = $('html, body');
Animations.el.$landing = $('.landing');
Animations.el.$item = Animations.el.$landing.find($('.item'));
Animations.init = function() { ..etc }

在文本中,你还不能使用属性,因此它必须是可以计算并返回你想要的内容的函数。我选择它只是因为它更适合我所做的事情,并且有错误原因的解释。谢谢
var Animations = {
    el: {}
};

Animations.el.$body = $('html, body');
Animations.el.$landing = $('.landing');
Animations.el.$item = Animations.el.$landing.find($('.item'));
Animations.init = function() { ..etc }