Sha*_*aoz 4 javascript jquery object-literal
我在JS中创建了一个对象文字,但是想要在不使用函数的情况下访问属性.每当我尝试,我都没有得到任何结果或它返回null.
JS:
var settings = {
prev: '#prev',
next: '#next',
slides: '#slides',
crslContainer: '#carousel',
//I'm trying to access the 'slides' by using 'this.slides'
inDent: $(this.slides).find('li').outerWidth(),
fx: 'rotate',
myFunction: function () {
console.log(settings.inDent); //This shows null in the console, why??
}
}
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,我试图slides通过使用this.slides,在同一个对象内部访问,但控制台说null.但是当我做这个方法时inDent: $('#slides').find('li').outerWidth(),它就可以了.这是为什么?我假设它与使用this关键字在函数内使用这些属性相同,显然情况并非如此.我只想将该对象属性(即字符串)的值传递给另一个不是函数的属性.
非常感谢
您不能在对象文字中引用"正在定义的对象".也就是说,没有办法让under-construction对象的属性的值表达式引用对象本身,以便访问另一个(可能是已经定义的)属性.
但是,您可以在定义对象后向其添加属性.
var obj = { a: 0 };
obj.b = (obj.a ? 1 : 2);
Run Code Online (Sandbox Code Playgroud)
或者在你的情况下:
var settings = { ... };
settings.inDent = ($(settings.slides).find('li').outerWidth());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1357 次 |
| 最近记录: |