Javascript meneruskan objek ke konstruktor kelas

Konstruktor adalah fungsi khusus yang membuat dan menginisialisasi instance objek dari suatu kelas. Dalam JavaScript, konstruktor dipanggil saat objek dibuat menggunakan kata kunci new

Tujuan konstruktor adalah membuat objek baru dan menetapkan nilai untuk setiap properti objek yang ada

 

Apa Yang Terjadi Ketika Konstruktor Dipanggil?

Saat konstruktor dipanggil dalam JavaScript, urutan operasi berikut terjadi

  • Objek kosong baru akan dibuat
  • Kata kunci this mulai merujuk ke objek baru dan menjadi objek instance saat ini
  • Objek baru kemudian dikembalikan sebagai nilai kembalian dari konstruktor

 

Contoh Pembuat JavaScript

Berikut adalah beberapa contoh konstruktor dalam JavaScript

Menggunakan Kata Kunci "ini".

Ketika kata kunci this digunakan dalam konstruktor, itu merujuk ke objek yang baru dibuat

//Constructor function User() { this.name = 'Bob'; } var user = new User();

 

Buat Banyak Objek

Dalam JavaScript, banyak objek dapat dibuat dalam sebuah konstruktor

//Constructor function User() { this.name = 'Bob'; } var user1 = new User(); var user2 = new User();_

Dalam contoh di atas, dua objek dibuat menggunakan konstruktor yang sama

 

Konstruktor dengan Parameter

Konstruktor juga dapat memiliki parameter

//Constructor function User (name, age) { this.name = name; this.age = age; } var user1 = new User('Bob', 25); var user2 = new User('Alice', 27);

Dalam contoh di atas, argumen diteruskan ke konstruktor selama pembuatan objek. Ini memungkinkan setiap objek memiliki nilai properti yang berbeda

 

Konstruktor vs Objek Literal

Literal objek biasanya digunakan untuk membuat objek tunggal sedangkan konstruktor berguna untuk membuat banyak objek

//Object literal let user = { name: 'Bob' }//Constructor function User() { this.name = 'Bob'; } var user1 = new User(); var user2 = new User();

Setiap objek yang dibuat menggunakan konstruktor adalah unik. Properti dapat ditambahkan atau dihapus dari suatu objek tanpa memengaruhi objek lain yang dibuat menggunakan konstruktor yang sama. Namun, jika objek dibangun menggunakan literal objek, setiap perubahan yang dilakukan pada variabel yang diberi nilai objek akan mengubah objek aslinya.

 

Prototipe Objek

Properti dan metode dapat ditambahkan ke konstruktor menggunakan prototipe

//Constructor function User() { this.name = 'Bob'; } let user1 = new User(); let user2 = new User(); //Adding property to constructor using prototype User.prototype.age = 25; console.log(user1.age); // 25 console.log(user2.age); // 25

Dalam contoh di atas, dua objek //Constructor function User() { this.name = 'Bob'; } var user1 = new User(); var user2 = new User();_1 dibuat menggunakan konstruktor. Properti baru //Constructor function User() { this.name = 'Bob'; } var user1 = new User(); var user2 = new User();2 kemudian ditambahkan ke konstruktor menggunakan prototipe, yang dibagikan di semua instance objek //Constructor function User() { this.name = 'Bob'; } var user1 = new User(); var user2 = new User();1

 

Konstruktor bawaan

JavaScript memiliki beberapa konstruktor bawaan, termasuk berikut ini

var a = new Object(); var b = new String(); var c = new String('Bob') var d = new Number(); var e = new Number(25); var f = new Boolean(); var g = new Boolean(true);_

Meskipun konstruktor ini ada, disarankan untuk menggunakan tipe data primitif jika memungkinkan, seperti

var a = 'Bob'; var b = 25; var c = true;

String, angka, dan boolean tidak boleh dideklarasikan sebagai objek karena menghambat kinerja

 

Lacak, Analisis, dan Kelola Kesalahan Dengan Rollbar

Mengelola kesalahan dan pengecualian dalam kode Anda itu menantang. Itu dapat membuat penggelaran kode produksi menjadi pengalaman yang mengerikan. Mampu melacak, menganalisis, dan mengelola kesalahan secara waktu nyata dapat membantu Anda melanjutkan dengan lebih percaya diri. Rollbar mengotomatiskan pemantauan dan penyortiran kesalahan, membuat perbaikan kesalahan Java lebih mudah dari sebelumnya. Daftar Sekarang

Dalam JavaScript, ketika kata kunci // constructor function function Person () { this.name = 'John', this.age = 23, this.greet = function () { console.log('hello'); } } // create objects const person1 = new Person(); const person2 = new Person(); // access properties console.log(person1.name); // John console.log(person2.name); // John_8 digunakan dalam fungsi konstruktor, // constructor function function Person () { this.name = 'John', this.age = 23, this.greet = function () { console.log('hello'); } } // create objects const person1 = new Person(); const person2 = new Person(); // access properties console.log(person1.name); // John console.log(person2.name); // John8 merujuk ke objek saat objek dibuat. Misalnya,

// constructor function function Person () { this.name = 'John', } // create object const person1 = new Person(); // access properties console.log(person1.name); // John

Oleh karena itu, ketika sebuah objek mengakses properti, ia dapat langsung mengakses properti sebagai // constructor function function Person () { this.name = 'John', } // create object const person1 = new Person(); // access properties console.log(person1.name); // John0

Parameter Fungsi Pembuat JavaScript

Anda juga dapat membuat fungsi konstruktor dengan parameter. Misalnya,

// constructor function function Person (person_name, person_age, person_gender) { // assigning parameter values to the calling object this.name = person_name, this.age = person_age, this.gender = person_gender, this.greet = function () { return ('Hi' + ' ' + this.name); } } // creating objects const person1 = new Person('John', 23, 'male'); const person2 = new Person('Sam', 25, 'female'); // accessing properties console.log(person1.name); // "John" console.log(person2.name); // "Sam"

Dalam contoh di atas, kami telah meneruskan argumen ke fungsi konstruktor selama pembuatan objek

const person1 = new Person('John', 23, 'male'); const person2 = new Person('Sam', 25, 'male');

Ini memungkinkan setiap objek memiliki properti yang berbeda. Seperti yang ditunjukkan di atas,

// constructor function function Person () { this.name = 'John', } // create object const person1 = new Person(); // access properties console.log(person1.name); // John1 memberi John

// constructor function function Person () { this.name = 'John', } // create object const person1 = new Person(); // access properties console.log(person1.name); // John2 memberi Sam

Buat Objek. Fungsi Konstruktor Vs Obyek Literal

  • Object Literal umumnya digunakan untuk membuat objek tunggal. Fungsi konstruktor berguna jika Anda ingin membuat banyak objek. Misalnya,
// using object literal let person = { name: 'Sam' }// using constructor function function Person () { this.name = 'Sam' } let person1 = new Person(); let person2 = new Person();
  • Setiap objek yang dibuat dari fungsi konstruktor adalah unik. Anda dapat memiliki properti yang sama dengan fungsi konstruktor atau menambahkan properti baru ke satu objek tertentu. Misalnya,
// using constructor function function Person () { this.name = 'Sam' } let person1 = new Person(); let person2 = new Person(); // adding new property to person1 person1.age = 20;

Sekarang properti // constructor function function Person () { this.name = 'John', } // create object const person1 = new Person(); // access properties console.log(person1.name); // John_3 ini unik untuk objek // constructor function function Person () { this.name = 'John', } // create object const person1 = new Person(); // access properties console.log(person1.name); // John4 dan tidak tersedia untuk objek // constructor function function Person () { this.name = 'John', } // create object const person1 = new Person(); // access properties console.log(person1.name); // John5

Namun, jika objek dibuat dengan literal objek, dan jika variabel didefinisikan dengan nilai objek tersebut, setiap perubahan nilai variabel akan mengubah objek aslinya. Misalnya,

// using object lateral let person = { name: 'Sam' } console.log(person.name); // Sam let student = person; // changes the property of an object student.name = 'John'; // changes the origins object property console.log(person.name); // John

Saat objek dibuat dengan literal objek, setiap variabel objek yang diturunkan dari objek tersebut akan bertindak sebagai tiruan dari objek aslinya. Karenanya, setiap perubahan yang Anda buat pada satu objek juga akan tercermin pada objek lainnya

Menambahkan Properti Dan Metode dalam Objek

Anda dapat menambahkan properti atau metode dalam objek seperti ini

// constructor function function Person () { this.name = 'John', this.age = 23 } // creating objects let person1 = new Person(); let person2 = new Person(); // adding property to person1 object person1.gender = 'male'; // adding method to person1 object person1.greet = function () { console.log('hello'); } person1.greet(); // hello // Error code // person2 doesn't have greet() method person2.greet();

Keluaran

// constructor function function Person () { this.name = 'John', this.age = 23, this.greet = function () { console.log('hello'); } } // create objects const person1 = new Person(); const person2 = new Person(); // access properties console.log(person1.name); // John console.log(person2.name); // John_0

Dalam contoh di atas, properti baru // constructor function function Person () { this.name = 'John', } // create object const person1 = new Person(); // access properties console.log(person1.name); // John6 dan metode baru // constructor function function Person () { this.name = 'John', } // create object const person1 = new Person(); // access properties console.log(person1.name); // John7 ditambahkan ke objek // constructor function function Person () { this.name = 'John', } // create object const person1 = new Person(); // access properties console.log(person1.name); // John4

Namun, properti dan metode baru ini hanya ditambahkan ke // constructor function function Person () { this.name = 'John', } // create object const person1 = new Person(); // access properties console.log(person1.name); // John4. Anda tidak dapat mengakses // constructor function function Person () { this.name = 'John', } // create object const person1 = new Person(); // access properties console.log(person1.name); // John_6 atau // constructor function function Person () { this.name = 'John', } // create object const person1 = new Person(); // access properties console.log(person1.name); // John7 dari // constructor function function Person () { this.name = 'John', } // create object const person1 = new Person(); // access properties console.log(person1.name); // John5. Karenanya program memberikan kesalahan ketika kami mencoba mengakses // constructor function function Person (person_name, person_age, person_gender) { // assigning parameter values to the calling object this.name = person_name, this.age = person_age, this.gender = person_gender, this.greet = function () { return ('Hi' + ' ' + this.name); } } // creating objects const person1 = new Person('John', 23, 'male'); const person2 = new Person('Sam', 25, 'female'); // accessing properties console.log(person1.name); // "John" console.log(person2.name); // "Sam" 3

Prototipe Objek JavaScript

Anda juga dapat menambahkan properti dan metode ke fungsi konstruktor menggunakan prototipe. Misalnya,

// constructor function function Person () { this.name = 'John', this.age = 23, this.greet = function () { console.log('hello'); } } // create objects const person1 = new Person(); const person2 = new Person(); // access properties console.log(person1.name); // John console.log(person2.name); // John_1

Untuk mempelajari lebih lanjut tentang prototipe, kunjungi JavaScript Prototype

Konstruktor Bawaan JavaScript

JavaScript juga memiliki konstruktor bawaan. Beberapa dari mereka adalah

// constructor function function Person () { this.name = 'John', this.age = 23, this.greet = function () { console.log('hello'); } } // create objects const person1 = new Person(); const person2 = new Person(); // access properties console.log(person1.name); // John console.log(person2.name); // John_2

Dalam JavaScript, string dapat dibuat sebagai objek oleh

// constructor function function Person () { this.name = 'John', this.age = 23, this.greet = function () { console.log('hello'); } } // create objects const person1 = new Person(); const person2 = new Person(); // access properties console.log(person1.name); // John console.log(person2.name); // John_3

Dalam JavaScript, angka dapat dibuat sebagai objek oleh

// constructor function function Person () { this.name = 'John', this.age = 23, this.greet = function () { console.log('hello'); } } // create objects const person1 = new Person(); const person2 = new Person(); // access properties console.log(person1.name); // John console.log(person2.name); // John_4

Dalam JavaScript, boolean dapat dibuat sebagai objek oleh

// constructor function function Person () { this.name = 'John', this.age = 23, this.greet = function () { console.log('hello'); } } // create objects const person1 = new Person(); const person2 = new Person(); // access properties console.log(person1.name); // John console.log(person2.name); // John_5

Catatan. Disarankan untuk menggunakan tipe data primitif dan membuatnya dengan cara biasa, seperti // constructor function function Person (person_name, person_age, person_gender) { // assigning parameter values to the calling object this.name = person_name, this.age = person_age, this.gender = person_gender, this.greet = function () { return ('Hi' + ' ' + this.name); } } // creating objects const person1 = new Person('John', 23, 'male'); const person2 = new Person('Sam', 25, 'female'); // accessing properties console.log(person1.name); // "John" console.log(person2.name); // "Sam" 4, // constructor function function Person (person_name, person_age, person_gender) { // assigning parameter values to the calling object this.name = person_name, this.age = person_age, this.gender = person_gender, this.greet = function () { return ('Hi' + ' ' + this.name); } } // creating objects const person1 = new Person('John', 23, 'male'); const person2 = new Person('Sam', 25, 'female'); // accessing properties console.log(person1.name); // "John" console.log(person2.name); // "Sam" 5 dan // constructor function function Person (person_name, person_age, person_gender) { // assigning parameter values to the calling object this.name = person_name, this.age = person_age, this.gender = person_gender, this.greet = function () { return ('Hi' + ' ' + this.name); } } // creating objects const person1 = new Person('John', 23, 'male'); const person2 = new Person('Sam', 25, 'female'); // accessing properties console.log(person1.name); // "John" console.log(person2.name); // "Sam" 6

Anda tidak boleh mendeklarasikan string, angka, dan nilai boolean sebagai objek karena memperlambat program

Catatan. Di JavaScript, kata kunci // constructor function function Person (person_name, person_age, person_gender) { // assigning parameter values to the calling object this.name = person_name, this.age = person_age, this.gender = person_gender, this.greet = function () { return ('Hi' + ' ' + this.name); } } // creating objects const person1 = new Person('John', 23, 'male'); const person2 = new Person('Sam', 25, 'female'); // accessing properties console.log(person1.name); // "John" console.log(person2.name); // "Sam" _7 diperkenalkan di ES6 (ES2015) yang juga memungkinkan kita membuat objek. Kelas mirip dengan fungsi konstruktor di JavaScript. Untuk mempelajari lebih lanjut, kunjungi

Bagaimana cara meneruskan objek dari satu kelas ke kelas lain di JavaScript?

Anda dapat melakukan ini. a = a; . a. methodA() di tempat lain .

Bagaimana Anda mengonfigurasi objek menggunakan konstruktor?

Menetapkan properti konstruktor ke objek . const arr = []; . konstruktor = String; . konstruktor === Tali; .

Apa itu JavaScript konstruktor objek?

Konstruktor Objek mengubah input menjadi objek . Perilakunya bergantung pada tipe input. Jika nilainya null atau undefined , itu membuat dan mengembalikan objek kosong. Jika tidak, ia mengembalikan objek bertipe yang sesuai dengan nilai yang diberikan.

Bisakah konstruktor JavaScript mengembalikan nilai primitif?

Pemeriksaan Kode. Konstruktor mengembalikan nilai primitif . Saat dipanggil dengan new , nilai ini akan hilang dan sebuah objek akan dikembalikan sebagai gantinya. Untuk menghindari peringatan, gunakan tag @return untuk menentukan pengembalian fungsi. Reports a constructor function that returns a primitive value. When called with new , this value will be lost and an object will be returned instead. To avoid warnings, use the @return tag to specify the return of the function.

Postingan terbaru

LIHAT SEMUA