如何参考这个'在对象的财产价值?

时间:2016-08-04 10:58:07

标签: javascript object this

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

请帮帮我! 对不起,我的英语不太好,但我会尝试解释我的问题。 我无法在当前对象的形式中选择输入元素,因为this.form未定义。为什么它未定义?

此代码有什么问题?

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

我怎么能纠正上面的代码?

2 个答案:

答案 0 :(得分:1)

您可以将input属性更改为函数:

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

然后使用search.input()进行调用以获得结果。

答案 1 :(得分:0)

LIKE - 让它发挥作用的唯一方法。定义值时,对象尚未存在,因此您无法引用它。您可以先尝试定义对象,然后添加$('search-form').find('.search-input')