【发布时间】:2019-01-11 13:20:17
【问题描述】:
var dataset = { num: 20 };
var svg = { w: 600 };
var column = {
padding: 0.2,
w: (svg.w/dataset.num)/(this.padding + 1),
print: function(){
console.log("through obj methord:" +
(svg.w/dataset.num)/(this.padding + 1)
);}
};
column.print();
console.log(column);
上面是代码,可以执行,在结果中可以看到column.w的结果是NAN,同样的计算在obj 的方法:print 可以返回正确答案:25。
怎么可能?即使我将 (svg.w/dataset.num)/(this.padding + 1) 替换为 svg.w/(dataset.num*(this.padding + 1)) ,完全一样。 在我用它的值替换像 svg.w、dataset.num 这样的变量之后,column.w 当然变成了值 25。
【问题讨论】:
-
不知道你的
this变量指的是什么,很难说。 -
如果您将 w: ..... 替换为 w: function() {return (svg.w/dataset.num)/(this.padding + 1);然后用 column.w() 调用它就可以了
-
是的,我已经做到了,我只是混淆了为什么@Bolphgolph
-
@HuangQinlai 我建议你阅读这个问题下的答案stackoverflow.com/a/2787621/7241459
-
@Bolphgolph 谢谢
标签: javascript methods properties