JavaScript는 기본적으로 유형을 지원하는 동적 유형, 약한 유형의 프로토타입 기반 언어입니다. 해당 인터프리터는 브라우저의 일부이며 클라이언트측 스크립팅 언어에서 널리 사용되는 JavaScript 엔진이라고 합니다. 이는 HTML 웹 페이지에 동적 기능을 추가하기 위해 HTML(Standard Universal Markup Language의 응용 프로그램) 웹 페이지에서 처음 사용되었습니다. .
JavaScript는 인터넷에서 가장 널리 사용되는 스크립트 언어로 전 세계 모든 웹 브라우저에 존재하며 웹 사이트 및 웹 애플리케이션과의 사용자 상호 작용을 향상시킵니다. "Yan Shiba Javascript 고급 튜토리얼"은 JavaScript 학습을 위한 고급 튜토리얼로, 특별한 요구 사항에 맞게 JavaScript 언어 학습을 확장하는 방법을 알려줍니다.
동영상 재생 주소: http://www.php.cn/course/214.html
이 과정에서는 이것의 사용법을 배우고 이것의 의미를 이해해야 합니다.
1. this 그리고 생성자
이것 자체가 클래스를 정의할 때 생성자에서 사용해야 하는 것입니다. 생성자와 함께 있는 것이 당연합니다.
/** * 页签 * * @class Tab * @param nav {string} 页签标题的class * @param content {string} 页面内容的class * */ function Tab(nav, content) { this.nav = nav this.content = content } Tab.prototype.getNav = function() { return this.nav; }; Tab.prototype.setNav = function(nav) { this.nav = nav; }; Tab.prototype.add = function() { };
자바스크립트 습관에 따라 이는 속성/필드에 첨부되어야 하며, 메소드는 프로토타입에 배치되어야 합니다.
2. this 및 객체
클래스 없이 객체를 만들 수 있습니다. 어떤 사람들은 클래스가 객체의 템플릿이고 객체가 템플릿에서 복사되는 것을 궁금해할 수 있습니다. JS는 그렇습니다. 단일 클래스를 작성하지 않고도 수만 줄의 기능 코드를 작성할 수 있습니다. 그런데 OOP는 클래스 지향 프로그래밍이 아닌 객체 지향 프로그래밍에 대해 이야기하고 있습니다. 그렇죠 ^_^.
var tab = { nav: '', content: '', getNav: function() { return this.nav; }, setNav: function(n) { this.nav = n; } }
3. this와 함수
우선 this와 독립된 함수를 함께 묶는 것은 의미가 없습니다. 앞서 언급했듯이 이것은 객체 지향과 관련이 있어야 합니다. 순수 함수는 단지 낮은 수준의 추상화, 캡슐화 및 재사용일 뿐입니다. showMsg를 다음
function showMsg() { alert(this.message) } showMsg() // undefined
으로 정의한 후 this.message가 정의되지 않은 함수로 호출합니다. 따라서 순수함수에서는 이것을 사용하는 것이 엄격히 금지되어 있지만, 호출하는 메소드는 call/apply
function showMsg() { alert(this.message) } var m1 = { message: '输入的电话号码不正确' } var m2 = { message: '输入的身份证号不正确' } showMsg.call(m1) // '输入的电话号码不正确' showMsg.call(m2) // '输入的身份证号不正确'
를 사용하여 작성하는 경우가 있습니다. 예를 들어 두 클래스/객체에 유사한 메소드가 있는 경우 이 메소드는 일부 코드를 절약할 수 있습니다. 두 개를 작성할 필요 없이 하나만 정의하고 해당 프로토타입과 개체에 바인딩하면 됩니다. 현재 실제로는 간접적으로 객체나 클래스(메서드 1/2)를 계속 사용하고 있습니다.
위 내용은 Yan Shiba Javascript 고급 비디오 자료 공유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!