Javascript 如何参考';这';在对象的属性值中?

Javascript 如何参考';这';在对象的属性值中?,javascript,object,this,Javascript,Object,This,请帮帮我! 对不起,我的英语不是很好,但我会尽力解释我的问题。 我无法在当前对象的窗体内选择输入元素,因为this.form未定义。为什么它没有定义 这个代码有什么问题 var search = { form: $('search-form'), input: this.form.find('.search-input'), // 'this' undefined callback: function(){ console.log(this.form) /

请帮帮我! 对不起,我的英语不是很好,但我会尽力解释我的问题。 我无法在当前对象的窗体内选择输入元素,因为
this.form
未定义。为什么它没有定义

这个代码有什么问题

var search = {
    form: $('search-form'),
    input: this.form.find('.search-input'), // 'this' undefined
    callback: function(){
        console.log(this.form) // 'this' not undefined
    }
}

如何更正上述代码?

$('search-form')。查找('search-input')
-使其工作的唯一方法。定义值时,对象还不存在,所以不能引用它。您可以先尝试定义对象,然后添加
search.input=search.form.find('.search input')
您可以将
input
属性改为函数:

input: this.form.find('.search-input')

然后使用
search.input()
调用以获取结果。

对象在定义时不存在,因此无法引用。getter可能是一个解决方案,或者只是重写
$('search-form')
。此
将引用包含
search
对象的上下文。不是对象本身。您是否有工厂方法来创建这些对象?您可以设置
input
然后?演示如何使用
input
属性
var search = {
    form: $('search-form'),
    input: function() { 
       return this.form.find('.search-input') 
    }, 
    callback: function(){
        console.log(this.form) // 'this' not undefined
    }
}