개발일지
javascript를 java 처럼.
OneEgg
2017. 5. 18. 17:48
일자 : 2017. 5. 18(목)
목표 : javascript를 java 클래스 처럼 사용해 보자. (알고리즘 공부를 위함)
- 주력으로 사용하는 언어는 javascript인데 자료는 java밖에 없다.
- ECMA표준이 재정의 되면서 class처럼 사용할 수 있다고 하니 이를 활용해 보자.
수행결과 :
- emca 2015부터 사용이 가능하다고 하니, 호완성이 해결되지 않아 babel 같은 것이 필요 할 것 같다.
- 조금더 사용해 보아야 하겠지만, java로 하던것을 모두 할 수 있을것 같다. (다음번에 후기 예정)
class Rectangle {
constructor(height, width) {
this.height = height;
this.width = width;
}
get area() {
return this.calcArea();
}
calcArea() {
return this.height * this.width;
}
}
const square = new Rectangle(10, 10);
console.log(square.area);
( 참고자료 : https://developer.mozilla.org/ko/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript )
(참고자료 : https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Classes )
class 문법을 이용하여 binary search tree 뼈대를 만들어 보았다.
트리에 값이 잘 입력되는 것 까지는 확인을 하였으며, 알고리즘 문제를 푸는데 사용을 해도 문제가 없을 것 같다.
class TreeNode{
constructor(v){
this.value = v;
this.left = this.right = null;
}
insertNode(v){
console.log("insertNode");
var current = this;
var parent = new TreeNode(null);
// console.log(current);
// console.log(parent);
while(current !== null){
if(this.value === v){
//값을 덧씌우고 반환
this.value = v;
return;
} else if(this.value > v){
parent = current;
current = current.left;
} else{
parent = current;
current = current.right;
}
}
var t = new TreeNode(v);
if(t.value < parent.value){
parent.left = t;
} else{
parent.right = t;
}
}
}
var t = new TreeNode(5);
console.log(t);
t.insertNode(3);
t.insertNode(8);
t.insertNode(1);
t.insertNode(2);
t.insertNode(9);
console.log(t);
(참고자료 : https://www.sitepoint.com/object-oriented-javascript-deep-dive-es6-classes/ )