>  기사  >  웹 프론트엔드  >  자바스크립트가 객체지향 언어인지 토론해보세요_javascript 기술

자바스크립트가 객체지향 언어인지 토론해보세요_javascript 기술

WBOY
WBOY원래의
2016-05-16 17:13:301236검색

1 데이터를 담을 수 있는 객체와 데이터 처리 방법이 있습니다. 개체에는 다른 개체가 포함될 수 있습니다. JavaScript 2.0이 실제로 구현되기 전에는 클래스가 없지만 변수와 메서드에 대한 컨테이너 및 역할 역할을 포함하여 클래스가 수행할 수 있는 작업을 수행할 수 있는 생성자가 있습니다. 클래스 기반 상속은 없지만 프로토타입 기반 상속은 있습니다. 객체 시스템을 구축하는 두 가지 방법은 상속과 집계를 통한 것입니다. JavaScript에는 두 가지가 모두 있습니다.

2 일부 의견에서는 JavaScript가 정보 숨기기 기능을 제공할 수 없기 때문에 진정한 객체 지향이 아니라고 말합니다. 즉, 객체는 전용 변수나 메서드를 가질 수 없습니다. 모든 멤버는 공용입니다. 그런데 누군가 JavaScript 객체가 개인 변수와 개인 메소드를 가질 수 있다는 것을 증명했습니다. JavaScript가 상속을 제공할 수 없다는 비판도 있지만 JavaScript가 전통적인 상속을 지원할 뿐만 아니라 다른 코드 재사용 패턴도 적용할 수 있다는 것이 누군가 입증되었습니다.

3 자바스크립트가 객체 기반 언어라고 말하는 것은 정확하고 약간 보수적인 판단이지만, 자바스크립트가 객체 지향적이지 않다고 말하는 것은 사실 자바스크립트를 증명할 충분한 이유가 있습니다. 자바스크립트는 객체지향 언어이지만, 전통적인 클래스 기반 객체지향과 비교하면 자바스크립트는 자신만의 독특한 특징을 가지고 있습니다. 우리는 이것을 프로토타입 기반 객체지향이라고 부릅니다.

------------------

js는 약한 유형의 언어이기 때문에 C, C#과 달리 이 유형의 언어는 함수 메소드 오버로딩을 지원하지 않으며 나중에 동일한 이름의 메소드를 작성하면 덮어쓰게 됩니다. !이 상황은 PHP와 동일합니다!

함수 오버로딩을 지원하는 C#이나 다른 언어와는 다릅니다. 매개변수와 반환값에 따라 다른 메소드가 호출됩니다!

JS가 객체지향인지에 관해서는 클래스, 메소드, 속성으로 작성할 수도 있습니다. 예를 들면

var cls=입니다. {
my:{ a:0},
init:function()
{
Alert(this.my.a);
}
};
창. onload=function()
{
cls.init();
}

cls.init()를 호출하세요.

이 클래스는 객체지향적인 기능이 많이 부족합니다. 따라서 완전히 객체지향적이지는 않습니다.

객체지향은 사고방식이자 문제해결방식일 뿐입니다!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.