자바 스크립트를 배우고 있고, 아래의 사용법을 혼동하고 있습니다. 이 질문은 d3 특정 자바 스크립트보다 더 많을 수 있습니다.Javascript - function argument
var arc = d3.svg.arc()
.startAngle(function(d) { return d.x; })
.endAngle(function(d) { return d.x + d.dx; })
.innerRadius(function(d) { return Math.sqrt(d.y); })
.outerRadius(function(d) { return Math.sqrt(d.y + d.dy); });
http://mbostock.github.com/d3/ex/sunburst.html
그래서,- startAngle로부터, endAngle 등 인자로서의 기능 걸린다. 합리적인 이유는 단순히 숫자가 아닌 함수를 인수로 사용하는 것입니까?
- 전체 코드에서 "d"가 정의 된 곳이 없습니다. 거의 모든 d3 프로그램에서 볼 수 있습니다. "d"는 무엇입니까? 어떻게 설정되며 어디로 전달됩니까?
감사합니다.
d는 익명 fn으로 전달됩니다. 그러나 다른 프로그래밍 언어 배경에서 오는 경우, d3 라이브러리를 사용하면 d (모든 유형이 무엇이든)를 전달하지 않아야합니다. 그래서 사용자로서, 어떻게 'startAngle'메소드가 필드 x가있는 올바른 d를 얻는 지 확인합니까? – bsr
@bsreekanth startAngle 메서드는 전달한 함수를 호출합니다. 이것이보다 전통적인 OO 인터페이스라면, startAngle 함수가 단일 매개 변수 ("d")를받는 getAngle 메소드로 객체를 수신하는 것과 같습니다. getAngle 메소드의'd' 매개 변수가 startAngle이 호출하는 것과 일치하는지 확인해야합니다. – hugomg