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

Javascript meneruskan objek ke konstruktor kelas

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);  // John
8 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);  // John
0


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);  // John
1 memberi John

// constructor function
function Person () {
    this.name = 'John',
}

// create object
const person1 = new Person();

// access properties
console.log(person1.name);  // John
2 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);  // John
4 dan tidak tersedia untuk objek
// constructor function
function Person () {
    this.name = 'John',
}

// create object
const person1 = new Person();

// access properties
console.log(person1.name);  // John
5

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);  // John
6 dan metode baru
// constructor function
function Person () {
    this.name = 'John',
}

// create object
const person1 = new Person();

// access properties
console.log(person1.name);  // John
7 ditambahkan ke objek
// constructor function
function Person () {
    this.name = 'John',
}

// create object
const person1 = new Person();

// access properties
console.log(person1.name);  // John
4

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);  // John
4. 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);  // John
7 dari
// constructor function
function Person () {
    this.name = 'John',
}

// create object
const person1 = new Person();

// access properties
console.log(person1.name);  // John
5. 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.