JavaScript 5

자바스크립트 생성자 호출 시 new 연산자가 동반 되는 이유

자바스크립트의 new는 사용자 정의 객체 타입이나 내장 객체 타입의 인스턴스를 생성하는 연산자이며, 보통 생성자와 함께 호출 된다. 생성자를 호출할 때 new를 빼먹으면 어떻게 될까? 문법 오류나 런타임 에러가 발생하지는 않지만, 논리적인 오류가 발생하여 예상치 못한 결과가 나올 수 있다. new를 빼먹으면 생성자 내부의 this가 전역 객체를 가리키게 되기 때문이다. (브라우저에서라면 this가 window를 가리키게 된다.) // 생성자 function Waffle() { this.tastes = "yummy"; } // 새로운 객체 var good_morning = new Waffle(); console.log(typeof good_morning); // "object" console.log(goo..

JavaScript 2023.03.29

동적으로 생성되는 태그에 이벤트 위임하기

동적으로 생성된 a태그에서 onclick 함수를 바인딩 하려고 했지만, 위와 같이 선언된 함수는 호출되지 않았다 . 위와 같이 이벤트 함수를 바꿨을 때도 호출이 되지않는다. 아래 처럼 생성될 element의 바로 상위 태그를 써주도록 해야된다. $("생성될 element 의 상위 태그).on(이벤트, 생성될 태그 selector 표현식, function(){...}); 참고 https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=moonv11&logNo=60168511203

JavaScript 2021.06.11

함수 객체의 기본 프로퍼티

함수는 객체로 취급되므로 일반적인 객체의 기능에 호출됐을 때 정의된 코드를 실행하는 기능을 가지고 있다. 일반 객체와는 다르게 추가로 함수 객체만의 표준 프로퍼티가 정의되어 있다. function add(x,y){ return x+y; } console.dir(add); 결과를 살펴보면 add()함수는 arguments, caller, length 등과 같은 프로퍼티가 기본적으로 생성된 것을 알수 있다. 이러한 프로퍼티들이 함수를 생성할 때 포함되는 표준 프로퍼티다. - name 프로퍼티 : 함수의 이름을 나타낸다. 이름이 없는 익명 함수라면 name 프로퍼티는 빈 문자열이 된다. - caller 프로퍼티 : 자신을 호출한 함수를 나타낸다. - arguments 프로퍼티 : 함수를 호출할 때 전달된 인자..

JavaScript/함수 2021.02.08

[함수의 특성] 함수의 객체적 특성

1. 자바스크립트에서는 함수도 객체이다. 함수의 기본 기능인 코드 실행뿐만 아니라, 일반 객체처럼 프로퍼티들을 가질 수 있다. // add()함수를 생성할 때, 함수 코드는 함수 객체의 [[Code]] 내부 프로퍼티에 자동으로 저장된다. function add(x,y){ return x+y; } // add() 함수 객체에 result, status 프로퍼티 추가 add.result = add(3,2); // 일반 객체처럼 result 프로퍼티를 동적으로 생성하고 함수 실행 결과를 저장했다. add.status = 'OK'; console.log(add.result); // 5 console.log(add.status); // OK 위처럼 자바스크립트의 함수는 코드를 수행하는 역할과 자신의 프로퍼티를 가..

JavaScript/함수 2021.02.03

자바스크립트의 함수의 생성

함수 생성 방법 함수를 생성하는 3가지 방법. 각각의 방식에 따라 함수 동작 방식이 미묘하게 차이가 난다. 1. 함수 선언문 2. 함수 표현식 3. Function() 생성자 함수 1. 함수 선언문 방식 함수 선언문 방식으로 정의된 함수의 경우는 반드시 함수명이 정의 되어 있어야 한다. function add(x,y){ return x+y; } console.log(add(3,4)); 2. 함수 표현식 방식 함수도 하나의 값처럼 취급된다. 따라서 함수도 변수에 할당하는 것이 가능하다. 이런 방식으로 생성된 함수를 변수에 할당하여 함수를 생성하는 것을 함수 표현식이라고 말한다. - 익명함수 var add = function(x,y){ return x+y; }; // add는 함수 리터럴로 생성한 함수를 참..

JavaScript/함수 2021.02.02