我创建了如下的电影和方法对象
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
中找到有人可以指出我的第一版代码有误吗?
谢谢。
答案 0 :(得分:2)
它不起作用的原因是因为您试图将成员添加为数组,就好像它是对象属性一样。如果您需要向数组添加函数,可以这样做:
(还要注意,您收到的错误是因为电影对象中的属性没有用逗号分隔。)
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);
我不确定您的实现方式,但是如果将索引更改,则将函数保留在数组中似乎有些奇怪。
答案 1 :(得分:0)
尝试: 各种电影= [ { aa:“ value01”, bb:6.5 }, { aa:“ value02”, bb:6 }, { aa:“ value02”, bb:7.5 }, { 百分比:功能(电影评分,比例){ 回报率(电影评分/比例)* 100; } }
]
,并将评分称为“评分=电影[3] .percentage(电影[0] .bb,10)
答案 2 :(得分:0)
或者,如果您(像我一样)不喜欢我以前的回答,并且不想在数组内部调用该函数,则可以像在其他函数上一样在数组外部定义它:
_
然后您可以像这样调用var movies = [
{
aa : "value01",
bb : 6.5
},
{
aa : "value02",
bb : 6
},
{
aa : "value02",
bb : 7.5
}
];
function percentage (movieRating, scale) {
return (movieRating / scale) * 100;
};
变量来使其工作:
theRating