我在不同版本中多次看到此问题, 但是对我没有帮助...
我有这个JS对象:
var memory = {
myLoop: function myLoop (action) {
// do some stuff...
} }
var messages = {
myLoop: function myLoop (action) {
// do some other stuff...
} }
另外,我有这个数组:
listOfScreens = ['messages','memory'];
我想从此函数调用myLoop函数:
var slider = {
playScreen: function startScreen(){
listOfScreens[0].myLoop('play');
// and next time to call:
listOfScreens[0].myLoop('play');
}
}
所以我的问题是:如何使用全局数组字符串从滑块对象调用内存对象中的函数myLoop
我尝试了很多,但还是没有成功。
答案 0 :(得分:0)
问题是您使用的是字符串数组而不是对象数组。
在代码中替换下面的行
listOfScreens = ['messages','memory'];
在这一行,
listOfScreens = [messages, memory];
答案 1 :(得分:-1)
只需使用方括号符号即可访问变量对象的属性。
var slider = {
playScreen: function startScreen(){
window[listOfScreens[0]].myLoop('play');
window[listOfScreens[0]].myLoop('play');
}
}
var memory = {
myLoop: function myLoop(action) {
console.log('memory.myLoop called')
}
}
var messages = {
myLoop: function myLoop(action) {
console.log('messages.myLoop called')
}
}
var listOfScreens = ['messages', 'memory'];
var slider = {
playScreen: function startScreen(){
window[listOfScreens[0]].myLoop()
// and next time to call:
window[listOfScreens[1]].myLoop()
}
}
slider.playScreen();