JS Eğitimi

ANA SAYFA JS Giriş JS Nereye JS Çıktı JS İfadeleri JS Sözdizimi JS Yorumları JS Değişkenleri JS Let JS Sabiti JS Operatörleri JS Aritmetiği JS Ataması JS Veri Türleri JS Fonksiyonları JS Nesneleri JS Etkinlikleri JS Dizeleri JS Dize Yöntemleri JS Dizisi Arama JS Dize Şablonları JS Numaraları JS Numarası Yöntemleri JS Dizileri JS Dizi Yöntemleri JS Dizi Sıralaması JS Dizi Yineleme JS Dizi Sabiti JS Tarihleri JS Tarih Formatları JS Tarih Alma Yöntemleri JS Tarih Ayar Yöntemleri JS Matematik JS Rastgele JS Booleanları JS Karşılaştırmaları JS Koşulları JS Anahtarı JS Döngüsü İçin JS Döngüsü İçin JS Döngüsü JS Döngüsü JS Arası JS Yinelenebilirler JS Setleri JS Haritaları JS Türü JS Tipi Dönüşüm JS Bitsel JS Normal İfade JS Hataları JS Kapsamı JS Kaldırma JS Sıkı Modu Bu Anahtar Kelimeyi JS JS Ok İşlevi JS Sınıfları JS JSON JS Hata Ayıklama JS Stil Kılavuzu JS En İyi Uygulamaları JS Hataları JS Performansı JS Ayrılmış Kelimeler

JS Sürümleri

JS Sürümleri JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE / Kenar JS Geçmişi

JS Nesneleri

Nesne Tanımları Nesne Özellikleri Nesne Yöntemleri Nesne Görüntüleme Nesne Erişimcileri Nesne Oluşturucuları Nesne Prototipleri Nesne Yinelenebilirler Nesne Kümeleri Nesne Haritaları Nesne Referansı

JS Fonksiyonları

Fonksiyon Tanımları Fonksiyon Parametreleri Fonksiyon Çağırma İşlev Çağrısı İşlev Uygula Fonksiyon Kapanışları

JS Sınıfları

Sınıf Tanıtımı Sınıf Kalıtımı Sınıf Statik

JS Zaman uyumsuz

JS Geri Aramaları JS Asenkron JS Sözleri JS Zaman uyumsuz/Bekliyor

JS HTML DOM'si

DOM Tanıtımı DOM Yöntemleri DOM Belgesi DOM Öğeleri DOM HTML'si DOM Formları DOM CSS'si DOM Animasyonları DOM Olayları DOM Olay Dinleyicisi DOM Gezinme DOM Düğümleri DOM Koleksiyonları DOM Düğüm Listeleri

JS Tarayıcı Malzeme Listesi

JS Penceresi JS Ekranı JS Konumu JS Geçmişi JS Navigatörü JS Açılır Pencere Uyarısı JS Zamanlaması JS Çerezleri

JS Web API'leri

Web API'sine Giriş Web Formları API'sı Web Geçmişi API'si Web Depolama API'sı Web Çalışanı API'si Web Getirme API'si Web Coğrafi Konum API'sı

JS AJAX

AJAX'a Giriş AJAX XMLHttp AJAX İsteği AJAX Yanıtı AJAX XML Dosyası AJAX PHP AJAX ASP AJAX Veritabanı AJAX Uygulamaları AJAX Örnekleri

JS JSON

JSON'a Giriş JSON Sözdizimi JSON'a karşı XML JSON Veri Türleri JSON Ayrıştırma JSON Stringify JSON Nesneleri JSON Dizileri JSON Sunucusu JSON PHP JSON HTML'si JSON JSONP

JS ve jQuery

jQuery Seçiciler jQuery HTML'si jQuery CSS'si jQuery DOM'si

JS Grafikleri

JS Grafikleri JS Tuval JS Konusu JS Chart.js JS Google Grafiği JS D3.js

JS Örnekleri

JS Örnekleri JS HTML DOM'si JS HTML Girişi JS HTML Nesneleri JS HTML Olayları JS Tarayıcı JS Editörü JS Alıştırmaları JS Testi JS Sertifikası

JS Referansları

JavaScript Nesneleri HTML DOM Nesneleri


JavaScript Nesne Oluşturucuları


Örnek

function Person(first, last, age, eye) {
  this.firstName = first;
  this.lastName = last;
  this.age = age;
  this.eyeColor = eye;
}

Oluşturucu işlevlerini ilk harf büyük harfle adlandırmak iyi bir uygulama olarak kabul edilir.


Nesne Tipleri (Ozalitler) (Sınıflar)

Önceki bölümlerden örnekler sınırlıdır. Yalnızca tek nesneler oluştururlar.

Bazen aynı "tür"den çok sayıda nesne yaratmak için bir " taslak "a ihtiyaç duyarız.

Bir "nesne türü" yaratmanın yolu, bir nesne oluşturucu işlevi kullanmaktır .

Yukarıdaki örnekte function Person(), bir nesne oluşturucu işlevidir.

Aynı türdeki nesneler, yapıcı işlevi newanahtar sözcükle çağrılarak oluşturulur:

const myFather = new Person("John", "Doe", 50, "blue");
const myMother = new Person("Sally", "Rally", 48, "green");


Bu Anahtar Kelime

JavaScript'te denilen şey this, kodun "sahibi" olan nesnedir.

Bir nesnede kullanıldığında değeri this, nesnenin kendisidir.

Bir yapıcıda işlevin thisbir değeri yoktur. Yeni nesnenin yerine geçer. Yeni bir nesne oluşturulduğunda değeri thisyeni nesne olacaktır.

thisBunun bir değişken olmadığını unutmayın . Bu bir anahtar kelimedir. değerini değiştiremezsiniz this.


Bir Nesneye Özellik Ekleme

Mevcut bir nesneye yeni bir özellik eklemek kolaydır:

Örnek

myFather.nationality = "English";

Mülk, myFather'a eklenecektir. Anneme değil. (Başka herhangi bir kişi nesnesine değil).


Bir Nesneye Yöntem Ekleme

Mevcut bir nesneye yeni bir yöntem eklemek kolaydır:

Örnek

myFather.name = function () {
  return this.firstName + " " + this.lastName;
};

Yöntem, myFather'a eklenecektir. Anneme değil. (Başka herhangi bir kişi nesnesine değil).


Bir Yapıcıya Özellik Ekleme

Mevcut bir nesneye yeni bir özellik eklediğiniz gibi, bir nesne yapıcısına yeni bir özellik ekleyemezsiniz:

Örnek

Person.nationality = "English";

Bir kurucuya yeni bir özellik eklemek için onu kurucu işlevine eklemelisiniz:

Örnek

function Person(first, last, age, eyecolor) {
  this.firstName = first;
  this.lastName = last;
  this.age = age;
  this.eyeColor = eyecolor;
  this.nationality = "English";
}

Bu şekilde nesne özellikleri varsayılan değerlere sahip olabilir.


Bir Yapıcıya Yöntem Ekleme

Yapıcı işleviniz ayrıca yöntemleri de tanımlayabilir:

Örnek

function Person(first, last, age, eyecolor) {
  this.firstName = first;
  this.lastName = last;
  this.age = age;
  this.eyeColor = eyecolor;
  this.name = function() {
    return this.firstName + " " + this.lastName;
  };
}

Var olan bir nesneye yeni bir yöntem eklediğiniz gibi, bir nesne oluşturucusuna yeni bir yöntem ekleyemezsiniz.

Bir nesne oluşturucuya yöntemler ekleme, yapıcı işlevi içinde yapılmalıdır:

Örnek

function Person(firstName, lastName, age, eyeColor) {
  this.firstName = firstName; 
  this.lastName = lastName;
  this.age = age;
  this.eyeColor = eyeColor;
  this.changeName = function (name) {
    this.lastName = name;
  };
}

changeName() işlevi, kişinin lastName özelliğine name değerini atar.

Şimdi Deneyebilirsiniz:

myMother.changeName("Doe");

JavaScript, bunu myMother ile "değiştirerek" hangi kişiden bahsettiğinizi bilir .


Yerleşik JavaScript Oluşturucuları

JavaScript, yerel nesneler için yerleşik kuruculara sahiptir:

new String()    // A new String object
new Number()    // A new Number object
new Boolean()   // A new Boolean object
new Object()    // A new Object object
new Array()     // A new Array object
new RegExp()    // A new RegExp object
new Function()  // A new Function object
new Date()      // A new Date object

Nesne Math()listede yok. Mathküresel bir nesnedir. Anahtar newkelime üzerinde kullanılamaz Math.


Biliyor musun?

Yukarıda görebileceğiniz gibi JavaScript, ilkel veri türlerinin String, Numberve Boolean. Ancak karmaşık nesneler yaratmak için hiçbir neden yoktur. İlkel değerler çok daha hızlıdır:

yerine dize değişmezlerini ""kullanın new String().

yerine sayı değişmezlerini 50kullanın new Number().

yerine boole değişmezlerini true / falsekullanın new Boolean().

Bunun yerine nesne değişmezlerini {}kullanın new Object().

[]Bunun yerine dizi değişmezlerini kullanın new Array().

Bunun yerine kalıp değişmezlerini /()/kullanın new RegExp().

Bunun yerine işlev ifadelerini () {}kullanın new Function().

Örnek

let x1 = "";             // new primitive string
let x2 = 0;              // new primitive number
let x3 = false;          // new primitive boolean

const x4 = {};           // new Object object
const x5 = [];           // new Array object
const x6 = /()/          // new RegExp object
const x7 = function(){}; // new function

Dize Nesneleri

Normalde, dizeler ilkel olarak oluşturulur: firstName = "John"

Ancak dizeler, anahtar kelime kullanılarak nesneler olarak da oluşturulabilir new:
firstName = new String("John")

JS Dizeleri bölümünde dizelerin neden nesne olarak oluşturulmaması gerektiğini öğrenin .


Sayı Nesneleri

Normalde sayılar ilkel olarak oluşturulur: x = 30

Ancak sayılar, anahtar kelime kullanılarak nesneler olarak da oluşturulabilir new:
x = new Number(30)

Sayıların neden nesne olarak oluşturulmaması gerektiğini JS Numaraları bölümünde öğrenin .


Boole Nesneleri

Normalde, boole'ler ilkel olarak oluşturulur: x = false

Ancak boolean'lar, anahtar kelime kullanılarak nesneler olarak da oluşturulabilir new:
x = new Boolean(false)

Booleanların neden nesne olarak oluşturulmaması gerektiğini JS Boolean bölümünde öğrenin .