목록Javascript (16)
타쿠꺼
Math.random() 은 0(포함)부터 1(포함하지않음) 사이의 난수를 생성한다.Math.floor은 버림을 한다. 따라서 이를 이용하여 Math.floor(Math.random() * m) + n; 이렇게 하면 n ~ (n+m) 범위의 정수를 생성할 수 있다.
모든 객체는 생성됨과 동시에 __proto__프로퍼티를 갖게 되는데, 이는 프로토타입 객체를 가리킨다.객체의 기본은 Object.prototype이다.함수의 경우 __proto__는 Function.prototype을, 배열의 경우에는 Array.prototype을 가리킨다. (그 외 Boolean, Number등이 있다)여기서 Function.prototype, Array.prototype도 객체이므로 결국 이들의 __proto__는 Object.prototype을 가리킨다.따라서 결국 모든 객체는 Object.prototype으로 귀결되며, Object.prototype만이 __proto__프로퍼티가 없다.함수를 새로 정의하는 경우, 함수이름.prototype 프로퍼티를 갖게 된다.그리고 이 함수를 ..
자바스크립트에서 생성자 함수는 함수에 new를 붙이면 그것이 생성자 함수가 된다. 가령, 어떤 함수 func이 선언되었다면 var foo = new func(); 과 같이 사용하면 func함수가 생성자함수로 작동하여 객체를 반환시킨다.이 때, 생성자 함수에 return을 명시할 필요는 없다. 다만, 명시적으로 객체를 반환시키는 경우엔 해당 객체를 반환시키며, 객체가 아닌 String, Number, Boolean 등을 반환시키면 해당 반환은 무시하고 this가 바인딩된 객체를 반환시킨다.작동 메커니즘은 다음과 같다. 1. 함수가 new와 함께 호출되면, 빈 객체를 생성한다.2. 해당 객체에 this를 바인딩 시킨다.3. 함수가 실행된다.4. 해당 객체를 반환한다. 따라서 생성자 함수는 내부적으로 this..
this 자바스크립트에서 this는 1. 메서드에서 호출되는 경우, 해당 메서드를 호출한 객체에 바인딩됨.2. 함수에서 호출되는 경우, 전역객체에 바인딩됨(js에선 window) 2의 경우가 문제인데, 만약 메서드 내에 함수를 정의하는 경우 해당 함수의 this는 메서드가 있는 객체에 바인딩되는게 아니라 전역객체에 바인딩 된다. 123456789101112131415161718192021222324var value = 100; var myObject = { value: 1, func1: function() { this.value += 1; console.log('func1() called. this.value: ' + this.value); var func2 = function() { this.value..
https://msdn.microsoft.com/ko-kr/library/hh924823(v=vs.85).aspx https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement