함수의 프로토타입 프로세스는 문자열

코인파워볼 함수의 프로토타입 값은 문자열로 캐스팅한 다음 문자열을 숫자로 캐스팅하여 숫자로 캐스팅됩니다. 이러한 프로세스는
문자열 및 숫자 캐스팅 에 대한 프로토타입toString 에서 및 valueOf함수를 각각 정의하여 수정할 수 있습니다 .

함수의 프로토타입

JavaScript는 규칙의 복잡성이 불일치로 오인될 수 있기 때문에 이러한 변환을 구현하는 방식에 대해 비판을 받았습니다. 예를 들어,
문자열에 숫자를 더할 때 연결을 수행하기 전에 숫자를 문자열로 변환하지만, 문자열에서 숫자를 뺄 때는 뺄셈을 수행하기 전에
문자열을 숫자로 변환합니다.

종종 또한 (숫자) {} + []의 결과로 언급됩니다. 0이것은 오해의 소지가 있습니다. {}는 빈 객체 대신 빈 코드 블록으로 해석되고 빈
배열은 나머지 단항 +연산자에 의해 숫자로 캐스트됩니다. 표현식을 괄호 ({} + [])로 묶는 경우 중괄호는 빈 개체로 해석되고
표현식의 결과는 “[object Object]”예상대로입니다

JavaScript는 대부분의 다른 스크립팅 언어 처럼 동적으로 유형 이 지정됩니다 . 유형 은 표현식 이 아닌 값 과 연관됩니다 .
예를 들어, 처음에 숫자에 바인딩된 변수 는 문자열 에 재할당될 수 있습니다 . JavaScript 는 오리 타이핑 을 포함하여 객체 유형을
테스트하는 다양한 방법을 지원합니다

JavaScript에는 eval런타임에 문자열로 제공되는 명령문을 실행할 수 있는 함수가 포함되어 있습니다

JavaScript의 프로토타입 상속은 Douglas Crockford 가 다음과 같이 설명합니다.

함수의 프로토타입

프로토타입 개체를 만든 다음 … 새 인스턴스를 만듭니다. 객체는 JavaScript에서 변경 가능하므로 새 인스턴스를 보강하여 새
필드와 메서드를 제공할 수 있습니다. 그런 다음 이들은 더 새로운 개체의 프로토타입 역할을 할 수 있습니다. 유사한 객체를 많이
만들기 위해 클래스가 필요하지 않습니다. 객체는 객체에서 상속됩니다. 이보다 더 객체 지향적인 것이 어디 있겠습니까?

더 많은 기사 보기

JavaScript에서 객체 는 프로토타입으로 보강된 연관 배열 입니다(아래 참조). 각 키는 객체 속성 에 대한 이름을 제공하며 이러한
이름을 지정하는 두 가지 구문 방식이 있습니다: 점 표기법( obj.x = 10) 및 대괄호 표기법( obj[‘x’] = 10). 속성은 런타임에 추가,
리바운드 또는 삭제할 수 있습니다. 객체의 대부분의 속성 (및 객체의 프로토타입 상속 체인에 속하는 모든 속성)은 for…in루프를
사용하여 열거할 수 있습니다.

프로토타입
JavaScript는 다른 많은 객체 지향 언어 가 상속 을 위해 클래스 를 사용하는 프로토타입 을 사용 합니다. JavaScript 에서
프로토타입을 사용하여 많은 클래스 기반 기능을 시뮬레이션하는 것이 가능합니다.
객체 생성자로서의 기능
함수는 일반적인 역할과 함께 객체 생성자 역할도 겸합니다. 함수 호출 앞에 new 를 붙이면 프로토타입의 인스턴스가 생성되고
생성자로부터 속성과 메서드( Object프로토타입의 속성 포함)를 상속받습니다. ECMAScript 5는 프로토타입 Object.create에서
자동으로 상속하지 않고 인스턴스를 명시적으로 생성할 수 있는 방법을 제공합니다 Object(이전 환경에서는 프로토타입을
할당할 수 null있음). 생성자 의 prototype속성은 새 객체의 내부 프로토타입에 사용되는 객체를 결정합니다. 생성자로 사용된
함수의 프로토타입을 수정하여 새로운 메소드를 추가