<<이글은 생활코딩을 실습, 정리한 내용입니다. 이고잉님 감사^^>>
var arr = {'name': 'jason', 'age': 20, 'city': 'Seoul' };
Object.keys(arr)
["name", "age", "city"]
arr.name
"jason"
arr.age
//20
arr.city
//"Seoul"
arr.toS
//undefined
arr.toString
toString() { [native code] }
2#
var arr = {'name': 'jason', 'age': 20, 'city': 'Seoul' };
arr
Object {name: "jason", age: 20, city: "Seoul"}
Object.keys(arr)
["name", "age", "city"]
arr
Object {name: "jason", age: 20, city: "Seoul"}
Object.keys(arr)
["name", "age", "city"]
3#
var arr = [10,20,30]
arr.toString();
"10,20,30"
arr.toString();
"10,20,30"
var arr = {10,20,30}
arr.toString();
VM1263:2 Uncaught SyntaxError: Unexpected token ,(…)
=> 어떤 메소드가 프로토타입 소속이라는 말은?
Object.prototype.toString = function(){} : Object라는 생성자함수가 만드는 new Object() 를 실행하는 순간 생성되는 객체는(위에서는 o) Object()의 prototype을 원형으로 한다. 그러므로 우리는 toString메소드를 사용할 수 있게 된다.
=> toString은 객체o에 대한 메소드로 사용하게 되낟.
=> keys는 Object의 메소드로 사용한다.
=>Array()도 생성자 함수성격을 가지고 있어서 객체생성이 가능하며 객체는 Object를 공유하고 있기에 prototype프라퍼티를 갖는다.
=> 즉, 프로타입은 toString()을 갖고 있기에 호출시는 객체뒤에 o.toString()이라고 쓴다.
=> 프로토다입이 있고 없고에 따라서 쓰는 메소드가 달라진다.
5확장#
Object.prototype.contain = function(neddle) { // Object에 contain이라는 메소드를 추가
for(var name in this){
if(this[name] === neddle){
return true;
}
}
return false;
}
var o = {'name':'egoing', 'city':'seoul'}
console.log(o.contain('egoing'));
var a = ['egoing','leezche','grapittie'];
console.log(a.contain('leezche'));
//true
//true
for(var name in this){
if(this[name] === neddle){
return true;
}
}
return false;
}
var o = {'name':'egoing', 'city':'seoul'}
console.log(o.contain('egoing'));
var a = ['egoing','leezche','grapittie'];
console.log(a.contain('leezche'));
//true
//true
6 #
var arr = {'name': 'jason', 'age': 20, 'city': 'Seoul' };
var arr1 = ['jasonkim','leech','jane'];
console.log(arr.contain('jason'));
console.log(arr1.contain('jane'));
var arr1 = ['jasonkim','leech','jane'];
console.log(arr.contain('jason'));
console.log(arr1.contain('jane'));
//true
// true
Object.prototype.contain = function(needle){ //
for(var name in this){ // this는 객체 arr과 arr1이고 name은 키값이다.
if (this[name]== needle){ // this[name]은 밸류 jane을 넣으면 이값은 jane이된다.
console.log(this[name]);
return true;
}
}
return false;
}
var arr = {'name': 'jason', 'age': 20, 'city': 'Seoul' };
var arr1 = ['jasonkim','leech','jane'];
console.log(arr.contain('jason'));
console.log(arr1.contain('jane'));
실행#
Object.prototype.contain = function(needle){ //
for(var name in this){ // this는 객체 arr과 arr1이고 name은 키값이다.
if (this[name]== needle){ // this[name]은 밸류
console.log(this[name]);
return true;
}
}
return false;
}
var arr = {'name': 'jason', 'age': 20, 'city': 'Seoul' };
var arr1 = ['jasonkim','leech','jane'];
console.log(arr.contain('jason'));
console.log(arr1.contain('jane'));
console.log(arr1.contain('jannny'));
//jason
// true
//jane
// true
// false
=> Object는 모든 생성자함수의 기원이기에 여기에 메소드를 추가하여 기능을 만드는것은 위험이 따른다.
'Web > 자바스크립트' 카테고리의 다른 글
칸아카데미>>SQL>>gradebook (0) | 2018.03.28 |
---|---|
칸아카데미>>SQL>>CASE (0) | 2018.03.28 |
sql (0) | 2018.03.28 |
자바스크립트_this (0) | 2018.03.28 |
자바스크립트_Node객체 (0) | 2018.03.28 |