π Chapter 1: μ’μ μννΈμ¨μ΄ λ§λ€κΈ°
π λ°λ₯΄κ² μμνλ μ½λ μμ±νκΈ°β
π μλ°μ€ν¬λ¦½νΈ νΉμ±μ μλ²½ν μλ ΅ν λΌβ
μ¬λ‘ μ°κ΅¬: D3.jsβ
μ 체μ μΈ λ΄μ©μ μμ νμμ΄λΌ μλ΅. (rj.js
μ pathFromArray.js
μ°Έκ³ )
const rj3 = {};
rj3.svg = {};
rj3.svg.line = function () {
let getX = function (point) {
return point[0];
};
let getY = function (point) {
return point[1];
};
const interpolate = function (points) {
return points.join('L');
};
function line(data) {
const segments = [];
const points = [];
let i = -1;
const n = data.length;
let d;
function segment() {
segments.push('M', interpolate(points));
}
while (++i < n) {
d = data[i];
points.push([+getX.call(this, d, i), +getY.call(this, d, i)]);
}
if (points.length) {
segment();
}
return segments.length ? segments.join('') : null;
}
line.x = function (funcToGetX) {
if (!arguments.length) {
return getX;
}
getX = funcToGetX;
return line;
};
line.y = function (funcToGetY) {
if (!arguments.length) {
return getY;
}
getY = funcToGetY;
return line;
};
return line;
};
- μλ°μ€ν¬λ¦½νΈ ν¨μλ λ€λ₯Έ ν¨μ λ΄λΆμ μ€μ²©λ μ μμΌλ©°, μ΄λ μ€μ½νλ₯Ό λ€μ€λ¦¬λ μ€μν μλ¨μ΄λ€.
- μλ°μ€ν¬λ¦½νΈ ν¨μλ μΌκΈ μλ―Όλ‘μ μμ λ§μ νλ‘νΌν°μ λ©μλλ₯Ό κ°μ§ μ μλ€.
- μλ°μ€ν¬λ¦½νΈ ν¨μλ λ©μλ/νλ‘νΌν°λ₯Ό μ§λ κ°μ²΄λ‘, λ€λ₯Έ μΈμ΄μ ν¨μλ³΄λ€ ν¨μ¬ μ μ°νκ³ κ°λ ₯νλ€.
- μλ°μ€ν¬ 립νΈμμ κ°μ²΄ μ§ν₯μ ν¨μ μ€λ²λ‘λ© κ°λ
μ ν¨μμ
arguments
λ₯Ό λ³΄κ³ μ¬κΈ°μ λκ° λ§μΆλ νμλ€. - λ νμ΄νμ μ νμ©νλΌ. μ μ μ½λλ‘λ κ°μ²΄λ₯Ό νλκ² λ€λ£° μ μλ€.
- ν΄λ‘μ λ μλ°μ€ν¬λ¦½νΈμ μ λ§ κ°λ ₯ν μ€κ³ μμλ€. λͺ¨λ ν¨μλ ν΄λ‘μ λ€.
- μλ°μ€ν¬λ¦½νΈμμ
this
λ μ€κ³ κ΄μ μμ μ νΈμ κΈ°νκ° λ μ μλ€. μ μ¨λ¨Ήλλ‘ νμ!this
λ ν¨μλ₯Ό νΈμΆν κ°μ²΄λ₯Ό μ°Έμ‘°νλ€.
μλ°μ€ν¬λ¦½νΈλ μ±κΈ μ€λ λλ‘ μμ§μΈλ€β
μλ°μ€ν¬λ¦½νΈλ μ±κΈ μ€λ λλ‘ μμ§μΈλ€. μλ°μ€ν¬λ¦½νΈλ λ€λ₯Έ μμΌλ‘ λΉλκΈ° νλ‘κ·Έλλ°μ ν΄μΌ νλ€λ λ»μ΄λ€.
μλ°μ€ν¬λ¦½νΈλ μ΄λ€ μ΄λ²€νΈκ° λλμλ§μ μ€νν ν¨μλ₯Ό νμ λ£λκ² κ³ μμ΄λ€. μ¬κΈ°μ μ΄λ²€νΈλ μΌμ μκ° κ²½κ³Ό(setTimeout
), λ€λ₯Έ μΉ μ¬μ΄νΈμμ λ°μ΄ν° μ‘°ν(XMLHttpRequest.send
), λ§μ°μ€ ν΄λ¦ λ±μ΄λ€. μλ°μ€ν¬λ¦½νΈ μμ§μ μ΄λ²€νΈ 루νμμ ν λ²μ νλμ© ν¨μλ₯Ό κΊΌλ΄ μ€ννλ€.