如何在不调用d3.svg.line.radial的情况下连接函数

时间:2015-11-12 16:16:44

标签: javascript object methods

我想知道如何在不调用它们的情况下连接方法调用(我的意思是不使用())。

例如,我知道如果我的对象的方法返回对象,我可以连接像jQuery中的方法:

$(myelement).attr('id','hello').addClass('my-class').etc(...

但我在jasmine test frameworkd3.js中看到他们用方法连接对象而不调用它们,例如:

d3.svg.line.radial().etc(...

我首先认为它就像d3一样简单object.svg.line等等......

但是,如果我查看d3.js's source code,或只是输入开发工具控制台:

d3.svg.line

它说这条线是一个功能......

function(){return ho(y)}

如果我将line连接到新的function / object,那么有人可以告诉我,objectmethod@Bean public Vertx vertx() { return Vertx.vertx(); } 的变换是什么?

2 个答案:

答案 0 :(得分:1)

一个函数也可以有属性:

var start = {};

start.middle = function(){
    return "Middle";
}

start.middle.end = function(){
    return "End";
}

现在start.middle()返回"Middle"start.middle.end()返回"End"

答案 1 :(得分:-1)

我认为这里的区别是:

  • d3是功能。连接函数通常将父项用作依赖项。 [line.radial()将使用行"module"]
  • 如果你连接调用它们的函数,你将能够选择顺序并构建你的调用堆栈,以你想要的方式应用这些函数。

例如: 你想创建一个有限的红线:

  • d3方法:line.segment(x,y,red);
  • 调用函数:line(x,y).color(red).cutEdges();line(x,y).cutEdges().color(red);

您应该在应用程序中选择您想要的内容,而不仅仅是它的外观。