객체를 만들어내는 틀의 역할을 하는 함수를 생성자 함수라고 한다.
function 틀 ( ) { } = > new 틀 ( )
function A (){}
const a = new A();
console.log(a , typeof a);
console.log(A());
// { } 'object' 출력
// undefined 출력
function B(name,age){
console.log(name,age);
}
const b = new B();
const c = new B('Mark',25);
console.log(B());
// undefined, undefind 출력
//'Mark',25
//undefined, undefined 출력
// 값을 속성으로 넣기
function A(){
this.name = 'Mark';
}
new A();
console.log(A());
//{name:'Mark'} 출력
// 함수를 속성으로 넣기
function B() {
this.hello = function (){
console.log('hello')
}
}
new B().hello();
//hello 출력
//new Function()
const a = new Object();
// { } a출력
// 타입 object
function Person( name, age ) {
this.name =name;
this.age = age;
/* this.hello=function () {
console.log('hello',this.name, this.age);
}; */
}
Person.prototype.hello = function () {
console.log('hello', this.name, this.age);
};
const p = new Person('Mark',37);
p.hello();
//hello Mark 37
function Person () {}
Person.prototype.hello = function () {
console.log('hello');
}
function Korean(region) {
this.region = region;
this.where = function() {
console.log('where', this.region);
};
}
korean.prototype = Person.prototype;
const k = new Korean('seoul');
k.hello();
k.where();
// hello
// where seoul
console.log ( k instanceof Korean);
console.log ( k instanceof Person);
console.log ( k instanceof Object);
//true
//true
//true
const a = { };
console.log ( a , typeof a );
// {} , object
const b = {
name : 'Mark'
};
console.log (b , typeof b);
// {name:'Mark'} , object
const c = {
name: 'Mark',
hello(){
console.log('hello1',this);
};
hello2:function () {
console.log('hello2',this);
},
hello3:()=>{
console.log('hello3',this);
}
};
c.hello();
c.hello(2);
c.hello(3);
// hello3 의 this값을 인지하지 못한다
const a = new Array ( 'red','black','white');
console.log( a, typeof a)
console.log( a instanceof Array);
console.log( a instanceof Object);
// ['red', 'balck', 'white'], object\
//true
//true
/*리터럴방식*/
const b = ['red', 'green','yellow'];
console.log( b, typeof b);
console.log( b instanceof Array);
console.log( b instanceof Object);
//['red', 'green','yellow'], Array
// true
// true
console.log(b.slice(0,1));
//0번째 부터 한개만 잘라오겠다
//['red']
console.log(Array.prototype.slice, Object.prototype.slice);
// [Function:slice] , undefined
//object를 프로토타입을 받아온 array가 따로 구현한 함수
//표준내장객체