본문 바로가기
javascript

Objcet 오브젝트

by rami_ 2021. 10. 6.

함수, 메소드 호출

함수 호출 방법

 Objcet create();

 log(Object.create); // create함수가 있는지 없는지의 여부를 물어봄. 있으니 출력됨. function create() { [native code] }

 log(Objcet.prototype.create); //undefined

메소드 호출방법

 Objcet.prototype.toString();

 또는 인스턴스를 생성하여 호출.

  log(Object.prototype.toString); //Object.prototype에 toString이 존재하므로 함수 출력. function create() { native code] }

  var obj = {}; 

  log(obj.toString); //인스턴스를 사용해 메소드를 호출할 때는 prototype을 작성하지 않음. prototype에 연결된 메소드로 인스턴스를 생성하기 때문(??). function toString() { [native code] }

함수와 메소드를 구분해야하는 이유

 JS코드 작성 방법이 다르기 때문.

 함수는 파라미터에 값을 구하고 메소드는 메소드 앞에 값을 작성.

 log(String.fromCharCode(49, 65)); //???????????

prototype과 연결되어있으면 메소드고 연결되어 있지 않으면 함수.

함수는 파라미터에 데이터를 작성해야하고 메소드는 이름 앞에 데이터를 작성할 수 있다.

 

프로퍼티 처리 메소드

hasOwnProperty()

구분 데이터(값)
object 기준 인스턴스
파라미터 프로퍼티 이름
반환 true, false

인스턴스에 파라미터 이름이 존재하면 true, 존재하지 않으면 false 반환

var obj = {value : 123};

var own = obj.hasOwnProperty("value");

log(own); //true obj인스턴스에 value프로퍼티가 존재함.

var obj = {value: undefined};

var own = obj.hasOwnProperty("value");

log(own); // undefined 값은 fasle로 처리하지만 여기서는 값을 체크하는 것이 아닌 존재유무를 따지므로 true 반환

자신이 만든것이 아니라 상속받은 프로퍼티이면 false반환.

var obj = {};

var own = obj.hasOwnProperty("hasOwnProperty");

log(own); //hasOwnProperty()는 자신이 만든것이 아니라 빌트인 Object 오브젝트에 있는것. {}를 실행하면 빌트인 Object 오브젝트의 prototype에 연결된 메소드를 사용하여 Object 인스턴스를 만드므로 자신이 만든 것이 아님. false

 

propertyInsEnumerable()

구분 데이터(값)
object 인스턴스, 오브젝트
파라미터 프로퍼티 이름
반환 true, false

오브젝트에서 프로퍼티를 열거할 수 있으면 true, 없으면 false 반환.

var obj = {sports : "축구"};

log(obj.proertyIsEnumerable("sports")); //true

var obj = {sports : "축구"};

Object.defineProperty(obj. "sports", {

enumerable : false

});

log(obj.propertyIsEnuerable("sports"));

for (var name in obj) {

 log(name);

} // enumerable:fasle로 열거 불가. for-in문에서 프로퍼티가 열거되지 않음. false

'javascript' 카테고리의 다른 글

Function 오브젝트  (0) 2021.10.14
Object와 prototype, 빌트인 object 특징  (0) 2021.10.08
objcet 오브젝트  (0) 2021.10.04
Unicode 관련 함수  (0) 2021.09.30
정규표현식을 사용할 수 있는 함수  (0) 2021.09.29