Tom*_*mmy 3 d3.js bullet-chart
我在D3 v2.4.2 github存储库中引用了子弹图示例.
我有一些问题可以帮助澄清这个例子中发生的事情.
1)在bulletChart函数中有8个声明,形式为bullet.ranges = function(x){},bullet.markers = function(x){}等.这个子弹对象来自哪里?它是否内置于图书馆?我以为我们已经将变量范围设置为bulletRanges函数,或者这两个不同的范围变量?
2)这些功能内部实际发生了什么?
3)最后一个问题.当bulletChart函数开始执行时,它会在执行时执行子弹函数还是等待显式调用?因为我从未真正看到明确要求的子弹(g)?
这个库真的很混乱.任何帮助非常感谢.
1)bullet名称的开头是指在第70行中创建的同名函数.调用将成员添加到对象中,该对象也是可调用的.它基本上是一种允许自定义返回对象的方法.在OO术语中,bullet是一个对象,函数为其成员定义访问器.功能bulletRanges等为外部bulletChart功能提供类似的功能.在OO术语中,考虑嵌套对象.
2)参见1.函数是函数内定义的变量的访问bullet器,允许以这种方式自定义行为.同样,OO等价物将是通过访问器公开的对象的私有成员.
3)bullet函数的返回值是可调用对象.这就是bulletChart回报.因此,通过将变量传递chart给.call函数,示例中的函数调用发生在第19行和第36行(通过d3函数).第chart5行的赋值是调用构造对象和可调用闭包的代码.
如果您不熟悉Javascript,可能有助于查找一些关于其更具异国情调的功能的教程材料,例如闭包.
| 归档时间: |
|
| 查看次数: |
2258 次 |
| 最近记录: |