자바스크립트 클래스
8712 단어 webjavascriptclass

Assalomu alaykum, bugungi maqolamiz JavaScript Class lari haqida bo'ladi.
JavaScriptda class ob'yekt yaratish uchun mo'ljallangan. Bunda class ob'yekt malumotlari va funksiyalarini o'z ichiga oladi. Boshqa dasturlash tillaridan farqli ravishda JavaScriptda class prototipli vorislikka asoslangan maxsus funksiya hisoblanadi.
ES6 및 올드인
ES6 및 oldin JS da class tushunchasi bo'lmagan.Biz bilgan class ni yaratish uchun 생성자 va 프로토타입 및 foydalanilgan.
function Person(name) {
this.name = name;
}
Person.prototype.getName = function () {
return this.name;
};
var ali = new Person("Ali Valiyev");
console.log(ali.getName());
나티자:
Ali Valiyev
Endi yuqoridagi kodning qanday ishlashini tushuntiraman.
Dastlab,
name xususiyatiga egaPerson konstruktor funksiyasi yaratildi. prototype ga getName() funksiyasi biriktirildi, endi bu funksiyani Person 클래스 이슬라틸간 바르차 홀라트라르다 이슬라티시미즈 멈킨.키인 esa
new operatori yordamida Person 고전적인 나무. ali ob'yekti prototipli vorislik orqali Person VAObject klasslaridan namuna olganligi uchun endi ularning barcha xususiyatlaridan foydalana oladi.console.log(john instanceof Person); // true
console.log(john instanceof Object); // true
Es6 다 클래스 닝 e'lon qilinishi
ES6 클래스 larni e'lon qilish uchun yangi sintaksis yaratildi. Yuqoridagi funksiya konstruktori yordamida yaratilgan class yangi sintaksisda quyidagicha yoziladi.
class Person {
constructor(name) {
this.name = name;
}
getName() {
return this.name;
}
}
Person 클라시다기 construtor() ichida olinadigan namunaning xususiyatlari e'lon qilinadi va new operatori orqali klassdan namuna olinganda JavaScript avtomatik ravishda constructor() 니 차키라디.let ali = new Person("Ali Valiyev");
Person 클라시다기 getName() metod deb ataladi va bunday qo'llaniladi.obyektNomi.metodNomi()
미솔 우천
let name = ali.getName();
console.log(name); // "Ali Valiyev"
비즈 유코리다
class ni maxsus funksiya dedik, buning isbotini ko'rish uchun Person 클라시닝 티피니 typeof 운영자 orqali tekshiramiz.console.log(typeof Person); // function
Class va funksiya 콘스트럭토리
Class va funksiya konstruktori orasida o'xshashlik bo'lishiga qaramasdan, ularda farqlanadigan muhim jihatlar bor.
Birinchi, 클래스 e'lon qilinganda funksiyaga o'xshab
hoisting ga uchramaydi.Misol uchun, quyidagi kodni
Person klassi e'lon qilinishidan oldin yozsak, natija sifatida ReferenceError 에가 볼라미즈.let ali = new Person("Ali Valiyev");
자톨릭
Uncaught ReferenceError: Person is not defined
Ikkinchi, class ichidagi barcha kodlar avtomatik ravishda
strict mode 다 이슐레이디.Uchinchi, class metodlari
non enumerable , ya'ni sanalmaydi(ular bilan for ... in va Object.keys() ni ishlata olmaymiz). Funksiya konstruktorida esa ob'yekt xususiyatlarini non enumerable qilish uchun Object.defineProperty() metodidan foydalanisimizga to'g'ri keladi.Va oxirigisi, class konstruktorini
new operatorisiz ishlatsak, xatolik beradi.let ali = Person("Ali Valiyev");
자톨릭
Uncaught TypeError: Class constructor Person cannot be invoked without 'new'
줄로사
class 칼리트 소지니 이슬라타미즈. Foydali bo'lgan bo'lsa ulashing)
Reference
이 문제에 관하여(자바스크립트 클래스), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/davronnormuminov/javascript-class-1k7l텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)