dev/JavaScript

여러가지 객체사용법 1

아디봉 2017. 4. 27. 11:32


여러가지 객체 사용법


 

아래 내용은 공부용으로 찾아보고 만든 코드이니.. 참고만 하시길 바랍니다.



객체사용 (1)

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var _company = new Object(); //var _company = {} 동일
 
_company.CompanyName = 'myCompany';
_company.Owner = 'me';
_company.ConsoleCompanyName = ConsoleCompany();
 
function ConsoleCompany(){
    console.log('ConsoleCompany 호출');
    console.log(this.CompanyName ); // 현재 전역 window에 CompanyName를 가르킴
}
 
console.log(_company.CompanyName);
_company.AlertCompanyName(); 
 
 
===== 
실행 결과값 
ConsoleCompany 호출
undefined
myCompany
=====
cs


_company.AlertCompanyName(); 호출이 되지 않는다. 

아래처럼 ConsoleCompany.call(_company); 해서 ConsoleComapny 함수가 _company를 가르키도록 .. 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
var _company = new Object(); //var _company = {} 동일
 
_company.CompanyName = 'myCompany';
_company.Owner = 'me';
_company.ConsoleCompanyName = ConsoleCompany();
 
function ConsoleCompany(){
    console.log('ConsoleCompany 호출');
    console.log(this.CompanyName ); // 현재 전역 window에 CompanyName를 가르킴
}
 
console.log(_company.CompanyName);
//ConsoleCompany 이 전역을 가르키지 않고 _company를 가르키도록 
ConsoleCompany.call(_company); 
_company.AlertCompanyName(); 
 
 
===== 
실행 결과값 
ConsoleCompany 호출
undefined
myCompany
ConsoleCompany 호출
myCompany
=====
cs


객체 사용(2)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
var _company = new Object(); //var _company = {} 동일
 
_company.CompanyName = 'myCompany';
_company.Owner = 'me';
_company.AlertCompanyName = function(){
    console.log(this.CompanyName );
}
 
var _company1 = {
    companyName : 'myCompany1',
  owner : 'me1',
  alertCompanyName : function(){
      console.log(this.companyName)
  }
}
 
console.log(_company.CompanyName);
_company.AlertCompanyName();
 
console.log(_company1.companyName);
_company1.alertCompanyName();
 
 
===== 
실행 결과값 
myCompany
myCompany
myCompany1
myCompany1
=====
cs


객체사용(3)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
var _monster = {
  monsterName : 'fire monster',
  property : 'fire',
  whoAreYou : function(){
        console.log(this.monsterName);
  }, weapon : {
  weaponName : 'namu',
  weaponWeight : 100
  }, gear : [{
      gearName : '천옷',
    cost : 500
  }, {
      gearName : '가죽',
    cost : 1000
  }]
}
 
_monster.whoAreYou();
console.log(_monster.weapon.weaponName)
console.log(_monster.gear[1].gearName + ' ' + _monster.gear[1].cost);
 
===== 
실행 결과값 
fire monster
namu
가죽 1000
=====
cs


객체사용 (4)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
function MyCompany(){
    this.CompanyName = 'MyCompany';
  this.AlertCompanyName = function(){
      console.log(this.CompanyName);
  }
}
 
MyCompany.prototype.Owner = 'owner';
MyCompany.prototype.AlertOwner = function(){
    console.log(this.Owner);
}
 
var _company = new MyCompany();
console.log(_company.CompanyName);
_company.AlertCompanyName();
_company.AlertOwner();
 
console.log('=====');
 
function MyCompany1(){
    this.CompanyName = 'MyCompany1';
  this.AlertCompanyName = function(){
      console.log(this.CompanyName);
  }
}
 
// new 키워드는 비어있는 object 를 만들고, class 생성하고자 하는 함수 이름의 
// [function name].call 메서드를 통해서 해당 function을 생성자로 빈 ojbect 를 채워줌
var _company1 = new Object();
MyCompany1.call(_company1);
 
console.log(_company1.CompanyName);
_company1.AlertCompanyName();
_company1.AlertOwner();
 
===== 
MyCompany
MyCompany
owner
----------
MyCompany1
MyCompany1
=====
cs