首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在不像d3.svg.line.radial中调用函数的情况下,如何连接函数?

在不像d3.svg.line.radial中调用函数的情况下,如何连接函数?
EN

Stack Overflow用户
提问于 2015-11-12 16:16:43
回答 2查看 46关注 0票数 0

我想知道如何连接方法调用而不调用它们(我指的是不使用() )。

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

代码语言:javascript
复制
$(myelement).attr('id','hello').addClass('my-class').etc(...

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

代码语言:javascript
复制
d3.svg.line.radial().etc(...

我第一次想到它就像d3object一样容易,.svg也是,.line也是,等等.

但是,如果我看一下D3.js源代码,或者只需输入dev工具控制台:

代码语言:javascript
复制
d3.svg.line

上面说那条线是一个函数..。

代码语言:javascript
复制
function(){return ho(y)}

那么,如果我将line与一个新的object/method连接起来,谁能告诉我是什么魔法将它从一个function转换成一个object呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-12 16:31:13

函数还可以具有以下属性:

代码语言:javascript
复制
var start = {};

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

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

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

票数 1
EN

Stack Overflow用户

发布于 2015-11-12 16:41:38

我认为这里的区别是:

  • d3是函数。连接函数通常将父函数用作依赖项。line.radial()将使用行"module"
  • 如果连接调用它们的函数,则可以选择顺序并构造调用堆栈,并以所需的方式应用这些函数。

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

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

--你应该在你的应用程序中选择你想要的东西,不仅仅是它的外观。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33676150

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档