let fruit = {
name: 'apple'
}
console.log(fruit.hasOwnProperty('name')); //true
//Object.prototype 객체의 프로퍼티인 __proto__
console.log(fruit.hasOwnProperty('__proto__')); //false
function Fruit(name){
this.name = name;
}
//프로토타입은 Fruit생성자 함수의 prototype프로퍼티에 바인딩 된다
Fruit.prototype.getName = function(){
return this.name;
}
let apple = new Fruit('apple');
let grape = new Fruit('grape')
console.log(apple.getName()); //apple
console.log(grape.getName()); //grape
//apple.__proto__는 get __proto__를 호출해서 Fruit객체의 프로토타입에 접근
console.log(apple.__proto__ === Fruit.prototype); //true
//생성자 함수
function Fruit(name){
this.name = name;
}
let apple = new Fruit('apple');
// constructor는 생성자 함수를 가리킨다
console.log(apple.constructor === Fruit); //true
출처
이웅모, 모던 자바스크립트 Deep Dive(2021)