✏️8.1 함수 옮기기 (Move Function)
class Account {
get overdraftCharge() {...}class AccountType {
get overdraftCharge() {...}🧷 배경
🧷 절차
🧷 예시: 중첩 함수를 최상위로 옮기기
Last updated
class Account {
get overdraftCharge() {...}class AccountType {
get overdraftCharge() {...}Last updated
function trackSummary(points) {
const totalTime = calculateTime();
const totlaDistance = calculateDistance();
const pace = totalTime / 60 / totalDistance;
return {
time: totalTime,
distance: totlaDistance,
pace: pace
};
fuction calculateDistance() { // 총 거리 계산
let result = 0;
for (let i = 1; i < points.length; i++) {
result += distance(points[i-1], points[i]);
}
return result;
}
function distance(p1, p2) {...} // 두 지점 거리 계산
function radians(degrees) {...} // 라디안 값으로 변환
function calculateTime() {...} // 총 시간 계산function trackSummary(points) {
const totalTime = calculateTime();
const totlaDistance = calculateDistance();
const pace = totalTime / 60 / totalDistance;
return {
time: totalTime,
distance: totlaDistance,
pace: pace
};
fuction calculateDistance() {
let result = 0;
for (let i = 1; i < points.length; i++) {
result += distance(points[i-1], points[i]);
}
return result;
}
function distance(p1, p2) {...}
function radians(degrees) {...}
function calculateTime() {...}
// 최상위로 복사하면서 새로운 임시 이름 지어주기, 매개변수 넘겨주기
function top_calculateDistance(points) {
let result = 0;
for (let i = 1; i < points.length; i++) {
result += distance(points[i-1], points[i]);
}
return result;
}// trackSummary 함수 ...
function distance(p1, p2) {
// 공식에 따른 함수
const dLat = radians(p2.lat) - radians(p1.lat);
// ...
return EARTH_RADIUS * c;
}
function radians(degrees) {
return degrees * Math.PI / 180;
}function trackSummary(points) {
const totalTime = calculateTime();
const totlaDistance = calculateDistance();
const pace = totalTime / 60 / totalDistance;
return {
time: totalTime,
distance: totlaDistance,
pace: pace
};
fuction calculateDistance() {
let result = 0;
for (let i = 1; i < points.length; i++) {
result += distance(points[i-1], points[i]);
}
return result;
}
// 함수 안으로
function distance(p1, p2) {...}
function radians(degrees) {...}
}function top_calculateDistance(points) {
let result = 0;
for (let i = 1; i < points.length; i++) {
result += distance(points[i-1], points[i]);
}
return result;
// 함수 안으로 복사
function distance(p1, p2) {...}
function radians(degrees) {...}
}function trackSummary(points) {
const totalTime = calculateTime();
const totlaDistance = calculateDistance();
const pace = totalTime / 60 / totalDistance;
return {
time: totalTime,
distance: totlaDistance,
pace: pace
};
fuction calculateDistance() {
return top_calculateDistance(points);
}function trackSummary(points) {
const totalTime = calculateTime();
const totlaDistance = top_calculateDistance(points);
const pace = totalTime / 60 / totalDistance;
return {
time: totalTime,
distance: totlaDistance,
pace: pace
};function trackSummary(points) {
const totalTime = calculateTime();
const pace = totalTime / 60 / totalDistance(points);
return {
time: totalTime,
distance: totalDistance(points),
pace: pace
};
function totalDistance(points) {
let result = 0;
for (let i = 1; i < points.length; i++) {
result += distance(points[i-1], points[i]);
}
return result;