본문 바로가기

JavaScript/JS-Tip

(4)
hasOwnProperty : 객체의 프로퍼티나 메서드 검사 hasOwnProperty 함수는 자바스크립트 표준 API 함수이다. 객체.hasOwnProperty("인자") - 해당 객체에 인자로 넘긴 문자열의 이름의 프로퍼티나 메서드가 있는지 체크해준다. 있으면 true; 없으면 false;
자바스크립트 함수 리턴 규칙 자바스크립트 함수는 항상 리턴값을 반환한다. 규칙 1) 일반 함수나 메서드는 리턴값을 지정하지 않을 경우 undefined 값이 리턴된다. 규칙 2) 생성자 함수에서 리턴값을 지정하지 않을 경우 생성된 객체가 리턴된다. 단, 리턴할 객체를 명시한 경우 해당 객체가 반환된다. 규칙 3) 생성자 함수에서 리턴값을 객체가 아닌 불린, 숫자, 문자열의 경우로 설정한 경우 리턴값을 무시하고 this 로 바인딩 된 객체가 리턴된다.
slice : 배열을 자르거나, arguments 객체를 배열로 만드는 방법 먼저 함수로 받은 인자들을 arguments 유사배열로 확인할 수 있다. 그것을 Array.prototype.slice.apply 를 통해서 배열로 리턴해보자. slice 메서드는 slice(start, end) 형태로 start 와 end 값을 받아서 start 인덱스 부터 end -1 인덱스까지 잘라서 리턴한다. 0 또는 인자를 넘기지 않을 경우 이 메서드(slice) 를 호출한 배열 전체를 복사 하여 새로운 배열을 추가한다. function myFunction() { console.dir(arguments); var args = Array.prototype.slice.apply(arguments); return args; } var arrA = myFunction(1, 2, 3); var arrB ..
생성자 함수 - 강제 인스턴스 생성 , new 키워드 빠짐 방지 방법 생성자 함수 사용시, new 키워드를 빼먹은 것을 방지하기 위한 코드 function A(arg){ // if (!(this instanceof A)) if(!(this instanceof arguments.callee)) return new A(arg); this.value = arg ? arg : 0; } var a = new A(100); var b = A(10); // forgot new keyword console.log(a.value); console.log(b.value); console.log(window.value); 감사합니다.