如何在对象方法中 select 一个 JavaScript 对象数组
How do I select a JavaScript Object Array within an Object Method
如何从我的 randomImage.imagePicker 方法 select 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
前提是您只想 return 来自 images
数组的随机图像:
imagePicker : function () {
var index = Math.floor(Math.random() * randomImage.images.length);
return randomImage.images[index];
}
可以使用索引仅返回特定图像:
imagePicker : function () {
// index 0 returns 'http://placehold.it/100x100'
return randomImage.images[0];
}
或者如果您想指定要获取的随机图像的索引:
imagePicker : function (idx) {
return randomImage.images[idx];
}
randomImage.imagePicker(1)
将 return http://placehold.it/200x200
this
是神奇的词:
(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
变量在自动函数之外不可用!
Fiddle here
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
^^
这将立即调用 函数并将其return 值赋给imagePicker
。但是此时randomImage
还没有初始化。它的值仍然是 undefined
,这就是您收到该错误的原因。
删除括号以分配函数本身(我假设这就是你想要做的):
imagePicker : function () {
return console.log(randomImage.images[2]);
}
如何从我的 randomImage.imagePicker 方法 select 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
前提是您只想 return 来自 images
数组的随机图像:
imagePicker : function () {
var index = Math.floor(Math.random() * randomImage.images.length);
return randomImage.images[index];
}
可以使用索引仅返回特定图像:
imagePicker : function () {
// index 0 returns 'http://placehold.it/100x100'
return randomImage.images[0];
}
或者如果您想指定要获取的随机图像的索引:
imagePicker : function (idx) {
return randomImage.images[idx];
}
randomImage.imagePicker(1)
将 return http://placehold.it/200x200
this
是神奇的词:
(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
变量在自动函数之外不可用!
Fiddle here
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
^^
这将立即调用 函数并将其return 值赋给imagePicker
。但是此时randomImage
还没有初始化。它的值仍然是 undefined
,这就是您收到该错误的原因。
删除括号以分配函数本身(我假设这就是你想要做的):
imagePicker : function () {
return console.log(randomImage.images[2]);
}