我创建了一个对象电影和方法,如下所示;
var movies = [
{
aa : "value01"
bb : 6.5
},
{
aa : "value02"
bb : 6
},
{
aa : "value02"
bb : 7.5
},
percentage:function(movieRating, scale){
return (movieRating/scale) * 100;
}
]
访问对象和方法我尝试使用以下方法;
theRating = (movies.percentage(movies[0].bb,10));
但是运行脚本给了我一个;
Uncaught SyntaxError: Unexpected token :
实际代码在 https://pastebin.com/9tvrSVJ1
我所做的工作可以在 https://pastebin.com/LkCwzWXn 中找到。
有人可以指出我第一个版本的代码哪里有问题吗?
提前致谢。
最佳答案
它不起作用的原因是因为您试图将成员添加到数组中,就好像它是对象属性一样。如果您需要向数组添加函数,可以这样做:
(另外,请注意,您收到的错误是因为电影对象中的属性没有用逗号分隔。)
var movies = [
{
aa : "value01",
bb : 6.5
},
{
aa : "value02",
bb : 6
},
{
aa : "value02",
bb : 7.5
},
function (movieRating, scale){
return (movieRating / scale) * 100;
}
]
然后可以像这样调用该函数:
movies[3](1, 10);
我不确定你的实现,但是如果它的索引可能会发生变化,那么将函数保留在数组中似乎有点奇怪。
关于javascript - 在包含对象数组的对象内定义方法(javascript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51680732/