Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在主干视图上定义变量_Javascript_Backbone.js - Fatal编程技术网

Javascript 在主干视图上定义变量

Javascript 在主干视图上定义变量,javascript,backbone.js,Javascript,Backbone.js,在我的代码的视图中,我习惯了以下示例: //for functions functionName: function(…){…}, //for objects objectName: function(…){…}, //for returning a function nameToReturnFunction: function(…){ return {…} }, 如何编写以下内容,而不是在render()或init()中 我在render或init中声明了变量,然后使用this.pathFu

在我的代码的
视图中,我习惯了以下示例:

//for functions
functionName: function(…){…},
//for objects
objectName: function(…){…},
//for returning a function
nameToReturnFunction: function(…){ return {…} },
如何编写以下内容,而不是在render()或init()中

我在render或init中声明了变量,然后使用
this.pathFunction=pathFunction
,但由于没有参数,我认为它应该作为一个整体出现在
视图中

在我需要调用
pathFunction
的各个地方,我想将其称为
this.pathFunction
。我尝试了以下方法:

pathFunction: function() {
    var pathFunction = d3.svg.line()
      .x(function (d) {return d.x;})
      .y(function (d) {return d.y;})
      .interpolate('basis');    
}

但是这不起作用,因为
this.pathFunction
是一个函数,当我执行
.attr('d',pathFunction)
之前的结构时,它不会返回变量调用所执行的操作。

我对d3 api不是很熟悉,但以下应该可以工作:

pathFunction: function() {
    return d3.svg.line()
      .x(function (d) {return d.x;})
      .y(function (d) {return d.y;})
      .interpolate('basis');    
}
然后您应该能够像以前一样调用它:
.attr('d',pathFunction)


您当前的代码段正确地执行了d3函数,但仅在pathFunction的范围内(该函数未将其返回到调用函数)。

您是否可以对“如何将此变量函数链作为其自身的一部分附加到视图”的含义再加一点解释
pathFunction: function() {
    return d3.svg.line()
      .x(function (d) {return d.x;})
      .y(function (d) {return d.y;})
      .interpolate('basis');    
}