자바스크립트 클래스
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.)