Number('3')
String(3)
typeof function
=== 'function'typeof array
=== 'object' (* typeof 연산 결과 'object'는 함수가 아닌 객체를 가리킴)Array.pop()
, Array.push(~)
, etc.Object.keys
: 객체 안 키를 배열의 형태로 보여준다.Primitive value 외 모두 Object를 상속받는다.
let str = '3';
let num = Number(str);
console.log(num) // 3
console.log(typeof num) // 'number'
(거의) 모든 객체들은 Object의 자손(=instance)
let obj = {};
obj instanceof Object
어떤 객체의 proto 값은 그 객체가 어디로부터 상속 받았는지를 뜻한다.
내 돈이 다 떨어지면 조상이 남긴 유언장을 보자
prototype은 상속을 가능하게 하는 객체이다.
모든 객체는 private property 외에 prototype이라는 객체에 접근 가능한 주소를 가진다.
__ proto __
로 표현된다..prototype
으로써 접근한다.Object.prototype
객체의 property와 method는 . 식별자에 의해 참조된다.
Number
는 전역 객체의 method다.
String
도 전역 객체의 method다.
function notEmpty() {
c = 520
}
let quiz = new notEmpty();
console.log(quiz.c) // 520
console.log(quiz.a) // undefined
만약 quiz 변수에 key, value를 넣지 않고 quiz.a가 undefined가 안 뜨게 하려면?
notEmpty.prototype.a = 'I am here';
console.log(quiz.a) // 'I am here'
그렇다면 quiz.b는?
console.log(quiz.b) // undefined
notEmpty.prototype.b = 11;
console.log(quiz.b) // 11
quiz는 b를 private property로 가지고 있지 않기 때문에
proto 안 속성을 참조한다.
요약: 인스턴스의 proto는 함수의 prototype과 같다.