如何在对象方法中选择JavaScript对象数组

如何在对象方法中选择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

如何从randomImage.imagePicker方法中选择randomImage.images数组中的字符串

(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]);
}