gpt4 book ai didi

javascript - 如何在不在javascript函数内部的情况下使用对象文字的属性

转载 作者:搜寻专家 更新时间:2023-11-01 05:06:48 25 4
gpt4 key购买 nike

我在 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??
}
}

在上面的代码中,我试图通过使用 this.slides 访问 slides,所有这些都在同一个对象中,但是控制台显示 null。但是当我执行方法 inDent: $('#slides').find('li').outerWidth() 时,它就起作用了。这是为什么?我认为这与使用 this 关键字在函数内部使用这些属性是一样的,显然事实并非如此。我只想将该对象属性的值(即字符串)传递给另一个不是函数的属性。

非常感谢

最佳答案

您不能在对象字面量中引用“正在定义的对象”。也就是说,没有办法让正在构建的对象的属性的值表达式引用对象本身,以便访问另一个(可能是已经定义的)属性。

不过,您可以在对象定义后添加属性。

 var obj = { a: 0 };
obj.b = (obj.a ? 1 : 2);

或者在你的情况下:

 var settings = { ... };
settings.inDent = ($(settings.slides).find('li').outerWidth());

关于javascript - 如何在不在javascript函数内部的情况下使用对象文字的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9873839/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com