如何在对象方法中选择JavaScript对象数组
如何从randomImage.imagePicker方法中选择randomImage.images数组中的字符串如何在对象方法中选择JavaScript对象数组,javascript,arrays,javascript-objects,Javascript,Arrays,Javascript Objects,如何从randomImage.imagePicker方法中选择randomImage.images数组中的字符串 (function() { var randomImage = { images : [ 'http://placehold.it/100x100', 'http://placehold.it/200x200', 'http://placehold.it/300x300
(function() {
var randomImage = {
images : [
'http://placehold.it/100x100',
'http://placehold.it/200x200',
'http://placehold.it/300x300',
'http://placehold.it/400x400'
],//images Array
imagePicker : function () {
return console.log(randomImage.images[2]);
}()//imagePicker Method
}//randomImage Object
})()
我在控制台中遇到以下错误:
未捕获的TypeError:无法读取未定义的属性“images”
如果您只希望它从
图像
数组返回随机图像:
可以使用索引仅返回特定图像:
imagePicker : function () {
// index 0 returns 'http://placehold.it/100x100'
return randomImage.images[0];
}
或者,如果要指定要获取的随机图像的索引:
imagePicker : function (idx) {
return randomImage.images[idx];
}
randomImage.imagePicker(1)
将返回http://placehold.it/200x200
这是一个神奇的词:
(function() {
var randomImage = {
images : [
'http://placehold.it/100x100',
'http://placehold.it/200x200',
'http://placehold.it/300x300',
'http://placehold.it/400x400'
],//images Array
imagePicker : function () {
alert(this.images[2]);
}//imagePicker Method
}//randomImage Object
randomImage.imagePicker();
})();
请注意,randomImage
变量在自动功能之外不可用
拨弄
我在控制台中遇到以下错误:uncaughttypeerror:无法读取未定义的属性“images”
问题是函数定义后有()
:
imagePicker : function () {
return console.log(randomImage.images[2]);
}()//imagePicker Method
^^
这将立即调用函数并将其返回值分配给imagePicker
。但此时,randomImage
尚未初始化。它的值仍然是未定义的,这就是为什么会出现该错误
删除括号以分配函数本身(我假设这就是您想要做的):
一模一样<代码>随机图像。图像[2]
访问数组中的第三个元素。不确定您的问题是什么?randomImage.imagePicker(1)在函数作用域上定义的范围外实际上不工作!
imagePicker : function () {
return console.log(randomImage.images[2]);
}()//imagePicker Method
^^
imagePicker : function () {
return console.log(randomImage.images[2]);
}