我正在尝试使用D3.js创建一个条形图对象,但我似乎可以让它工作。
我像这样定义了x-scale:
var Barplot = function(){
this.x = d3.linear().....
...
然后我尝试使用这样的比例
this.bar.append("text")
.attr("x", function(d){
return this.x(d) + 5;
}
然而,当我运行此操作时,我收到此错误 - >
TypeError: SVGAnimatedLengthList is not a function (evaluating 'this.x(d)' ).
并且我不知道为什么特别是因为如果我将this.x更改为var x将会有效。
答案 0 :(得分:2)
this
指的是两个不同的东西。在属性函数内,this
引用当前的DOM元素(参见the documentation)。如果您确实需要引用外部this
,请将其保存在变量中(例如var that = this
),然后使用that
。