我有这个对象' cp'。它有一些属性,如标签和arcSettings。每当我初始化这个对象并调用方法' graph()'它说
Uncaught TypeError: Cannot read property '0' of undefined
我做错了吗?
function cp() {
this.labels = [{
"pointThickness": 0.8,
"distance": 8,
"textDistance": 7,
"strokeColor": "#888",
"strokeWidth": 0.5,
"textColor": "#777",
"pointColor": "#888",
"textSize": 4,
//"interval":100,
//"precision":2,
"num": 10,
"startValue": 0,
"endValue": 300
}
];
this.arcSettings = [
{
"totalArcAngle":300,
"startAngle":(-this.totalArcAngle/2),
"endAngle":(this.totalArcAngle/2),
"progressValue":200,
"radius":150,
"thickness":30,
"displayValue":this.progressValue
}
];
}
cp.prototype.getOneUnit = function () {
return oneUnit = (this.arcSettings[0].totalArcAngle) / (this.label[0].endValue - this.label[0].startValue);
}
cp.prototype.graph= function(){
var oneUnit = this.getOneUnit();
}
var cp = new cp();
cp.graph();
答案 0 :(得分:2)
在cp.prototype.getOneUnit
功能中,您使用的是this.label
。相反,它应该是this.labels
。
cp.prototype.getOneUnit = function () {
return oneUnit = (this.arcSettings[0].totalArcAngle) / (this.labels[0].endValue - this.labels[0].startValue);
}
答案 1 :(得分:2)
首先制作一个对象的实例
var cp = new cp();
然后将方法/属性添加到原型
中cp.prototype.graph= function(){ }
此外,您在类/函数声明和对象实例变量中使用了相同的名称。您可以将function cp()
更改为function Cp()
。
答案 2 :(得分:1)
你刚刚写了一个错字。你写了标签而不是标签。