2011-09-12 6 views
0

예를 들어 Google 크롬 개발자 도구의 자바 스크립트 콘솔을 사용하면 수학과 같은 전역 개체를 검사 할 수 있습니다.자바 스크립트 콘솔을 사용하여 자바 스크립트 개체 검사

간단히 수학을 콘솔에 쓰고 돌아올 수 있습니다. E, PI 및 abs, ceil 등의 메소드와 같은 모든 속성에 액세스 할 수 있습니다.

또한 String은 Math와 같은 전역 객체이지만 동일한 연산을 시도하면 javascript condole 출력이 달라집니다 속성 및 메서드를 볼 수 없습니다.

String의 Properties 및 Methods를 보려면 다음과 같이해야합니다.

var c = new String("asd") 

그런 다음 개체를 검사하십시오.

내 질문은, 당신은 String으로 구현 된 다음 수학으로 구현 된 매우 간단한 객체의 예를 만들 수 있습니까?

+1

콘솔에 'String.prototype'을 입력하고 Enter 키를 누릅니다. –

답변

1

정규 OO 수학에서는 Static 클래스로 간주됩니다. 단 하나의 인스턴스 만 있습니다. 문자열은 정상적인 클래스가되며, 하나 이상의 인스턴스를 생성합니다.

자바 스크립트의 경우

Calc.Addition (1,2)을 호출하고 3을 다시 얻을 수 있습니다. 개체를 인스턴스화해야 다른 샘플에서

먼저는 다음과 같이 할 수 : 콘솔에서
var Person = function(name) 
{ 
this.Name = name; 

this.Walk = function() 
{ 
    console.log(this.Name + " is walking"); 
} 
} 

var p = new Person("AntonJS"); 

하면 p는 이름이라는 속성을 가지고 볼 줄 로그인을하고, 함수가 호출 산책.

typeof(new String("asd")) // 'object' 
typeof("asd") // 'string' 

하지만

(new String("asd")).constructor.name // String 
"asd".constructor.name // String 

String 객체의 속성과 메소드 ECMA-262 (자바 스크립트 표준) 및 확장의 표준에 의해 구현됩니다

+0

나는 이것이 당신이 말하는 것, 그것이 이해하기가 다소 어려웠 으면 좋겠다. 아마도 당신은 OO에 대해 좀 더 자세히 살펴 봐야 할 것입니다. – TJHeuvel

+0

(샘플에서는 같은 범위 내에서 개체가 선언 된 것으로 가정합니다.) – TJHeuvel

1

diference은 기본 유형입니다 현재 자바 스크립트 엔진에 의해. String 객체의 String.prototype 객체 정의에서 위와 같이 알 수 있습니다.

편집 : 이제 귀하의 질문에 더 잘 맞습니다. 수학은 추상 개체이며 "asdf"는 문자열의 인스턴스입니다.

var MockMath = { 
    'sin' : function(){ 
    } 
    ,'cos' : function(){ 
    } 
    /* ... */ 
}; 

var MockString = function() { 
    /* ... */ 
}; 

MockString.prototype = { 
    'split' : function() { 
    } 
    ,'toLowerCase' : function() { 
    } 
    ,'toUpperCase' : function() { 
    } 
}; 

console.debug(new MockString("asdf")); 
console.debug(MockMath);