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

标签 javascript arrays javascript-objects

如何从 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

})()

我在控制台中收到以下错误:

Uncaught TypeError: Cannot read property 'images' of undefined

最佳答案

I get the following error in the console: Uncaught TypeError: Cannot read property 'images' of undefined

问题是在函数定义之后有 () :

imagePicker : function () {
    return console.log(randomImage.images[2]);
}()//imagePicker Method
 ^^

这将立即调用该函数并将其返回值分配给imagePicker。但此时randomImage还没有初始化。它的值仍然是未定义,这就是您收到该错误的原因。

删除括号以分配函数本身(我认为这就是您想要做的):

imagePicker : function () {
    return console.log(randomImage.images[2]);
}

关于javascript - 如何在对象方法中选择 JavaScript 对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32999868/

相关文章:

arrays - 管道完整的数组对象而不是一次一个数组项?

javascript - 更改 JavaScript 中的日期格式

javascript - 获取订阅处理程序的 '0' 字段返回未定义,但显示在控制台中

javascript - d3.js 和 geojson map 抛出错误

javascript - 如何在给定hh:mm:ss的<audio>文件中设置currentTime?

javascript - JavaScript 中的十进制比较失败

javascript - Node : Unable to read file contents

php提交仅给出填充表单的数组中的最后一个值

javascript - 如何访问数组中随机对象的属性?

Javascript - 根据日期对包含对象的嵌套数组进行升序和降序排序