function Person(name, gender) {
var married = true; // private
this.name = name; // public
this.gender = gender; // public
this.sayHello = function(){ // public
console.log('Hi! My name is ' + this.name);
};
}
Person('준석','남')
Person.name // Person
Person.gender // undefinde
// 올바른 예시
// 붕어빵에 빵을 구움 (+ 재료와 함께)
var person = new Person('준석', '남');
// 구운빵의 재료는?
person.name
person.gender // undefinde
//이거 먼저 좀
//왜 값이 '준석'이랑'남'이 출력이 안돼?
//안하면 값이 안담아져?
//new 안쓰고 그냥 사용해볼까 해서 했는데 안됙ㄹ
//틀은 붕어빵을 만드는 도구고 저장이 안된다는 말이지?
// 답변 붕어빵을 굽지도 않았는데 붕어빵의 재료를 말하라는건 말이 안되지
// 이해됨 이건ㅇㅋ
// 답변 객체를 만드는 과정이 없었음.
// new Person('준석', '남') 만들고 객체에 담고 그 객체를 활용해서 해야함
// new 상관없이 변수에 안담으면 유지는 안됨
// 틀로 비교하면 틀을 만든뒤에 그 틀로 계속 뭔가를 만들어야되는데 넌 지금
// 붕어빵 틀에다가 빵굽고 버리고 슈크림 채우고 버리고 그렇게 하는거임.
var str = 'string';
// 문자열은 유사배열이다.
for (var i = 0; i < str.length; i++) {
return console.log(str[i]);
}
// return으로 값을 출력하면 에러가 나는데 왜 에러가 나지?
// s만 나오고 반복문 끝나는 거 아닌가?
// 답변 아 잘못말함
// return 을 제대로 이해 못한 것 같음
// return 이라는 것은 기본적으로 function 내에서 값을 반환하는 부분임
// function 내부도 아닌데 return 을 쓸순 없음
//아 반복문이나 조건문으로는 사용못하구나
// return 이라는게 기본적으로 return 한 값을 받을 곳이 있어야 하는데 받을 수가 없잖음
프로퍼티 키에 문자열이나 symbol 값 이외의 값을 지정하면 암묵적으로 타입이 변환되어 문자열이 된다. 이미 존재하는 프로퍼티 키를 중복 선언하면 나중에 선언한 프로퍼티가 먼저 선언한 프로퍼티를 덮어쓴다. 배열과는 달리 객체는 프로퍼티를 열거할 때 순서를 보장하지 않는다.
가장 일반적인 자바스크립트의 객체 생성 방식이다.
생성자(constructor) 함수란 new 키워드와 함께 객체를 생성하고 초기화하는 함수를 말한다. 생성자 함수를 통해 생성된 객체를 **인스턴스(instance)**라 한다.
대문자로 사용
프로퍼티키
프로퍼티 키는 문자열이므로 따옴표(‘’ 또는 ““)를 사용한다. 하지만 자바스크립트에서 사용 가능한 유효한 이름인 경우, 따옴표를 생략할 수 있다. 반대로 말하면 자바스크립트에서 사용 가능한 유효한 이름이 아닌 경우, 반드시 따옴표를 사용하여야 한다.
프로퍼티 값은 모든 값과 표현식이 올 수 있으며 프로퍼티 값이 함수인 경우 이를 메소드라 한다.