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
}
}