简介
一直不理解函数式编程,其实就像deeplearning 一样 知难行易。一般人使用的多的,不会太难;
Example
function SimpleWidget(spec) {
var instance = {}; // <-- A
var headline, description; // <-- B
instance.render = function () {
var div = d3.select('body').append("div");
div.append("h3").text(headline); // <-- C
div.attr("class", "box")
.attr("style", "color:" + spec.color) // <-- D
.append("p")
.text(description); // <-- E
return instance; // <-- F
};
instance.headline = function (h) {
if (!arguments.length) return headline; // <-- G
headline = h;
return instance; // <-- H
};
instance.description = function (d) {
if (!arguments.length) return description;
description = d;
return instance;
};
return instance; // <-- I
}// 逻辑上是 一个返回对象的函数 简称: 函数式编程
var widget = SimpleWidget({color: "#6495ed"})
.headline("Simple Widget")// 返回对象之后然后对对象中的一些元素赋值
.description("This is a simple widget demonstrating functional javascript.");
widget.render();// 绘制