Rumah >hujung hadapan web >Soal Jawab bahagian hadapan >Bagaimana untuk mengembalikan nilai daripada pembina dalam javascript

Bagaimana untuk mengembalikan nilai daripada pembina dalam javascript

WBOY
WBOYasal
2023-05-17 20:39:07785semak imbas

JavaScript ialah bahasa pengaturcaraan dinamik, dan salah satu ciri pentingnya ialah sokongan untuk Pengaturcaraan Berorientasikan Objek (OOP). Seperti bahasa pengaturcaraan lain, pembina dalam JavaScript memainkan peranan penting dalam mencipta objek. Pembina bukan sahaja mentakrifkan sifat dan kaedah sesuatu objek, tetapi mereka juga boleh mengembalikan nilai apabila objek itu dicipta. Artikel ini akan memperkenalkan pengetahuan yang berkaitan tentang nilai pulangan pembina dalam JavaScript.

Takrifan asas pembina

Pembina ialah jenis fungsi khas yang digunakan untuk mencipta objek baharu. Dalam JavaScript, pembina dinamakan bermula dengan huruf besar, yang merupakan salah satu perbezaan daripada fungsi biasa. Pembina biasanya digunakan untuk memulakan objek yang baru dicipta dan menetapkan sifat dan kaedah kepada objek. Dalam kod di bawah, kami mentakrifkan pembina yang dipanggil Orang yang mencipta objek manusia.

function Person(name, age) {
  this.name = name;
  this.age = age;
  this.sayHello = function() {
    console.log("Hello, my name is " + this.name + ", I am " + this.age + " years old.");
  }
}

Dalam kod di atas, Person ialah pembina yang menerima dua nama parameter dan umur, yang digunakan untuk memulakan objek manusia. Kata kunci ini digunakan untuk menunjuk ke objek yang sedang dibuat Melalui kata kunci ini, kita boleh menentukan nilai atribut dan kaedah yang berbeza untuk setiap objek. Atribut dan kaedah dalam objek mempunyai nilai yang sepadan Nilai atribut boleh berupa sebarang jenis nilai, termasuk nombor, rentetan, nilai Boolean, dsb. Kaedah ini biasanya merupakan fungsi.

Apabila mencipta objek Orang, kita boleh menggunakan kaedah berikut:

var person = new Person("Tom", 20);

Baris kod ini mencipta objek bernama orang, menggunakan pembina Orang dan memasukkan parameter nama dan umur. Seterusnya, kita boleh memanggil kaedah sayHello objek:

person.sayHello(); // 输出:Hello, my name is Tom, I am 20 years old.

Dalam kod di atas, kami memanggil kaedah sayHello objek orang dan mengeluarkan beberapa maklumat.

Nilai pulangan pembina

Dalam JavaScript, pembina boleh mempunyai nilai pulangan, dan nilai yang dikembalikan boleh dari sebarang jenis. Jika pembina tidak memulangkan nilai secara eksplisit, objek baharu dikembalikan secara lalai. Jika pembina mengembalikan nilai normal, nilai itu diabaikan dan objek baharu dikembalikan. Jika pembina mengembalikan objek, objek itu menggantikan objek asal yang dicipta. Kod berikut menunjukkan situasi berbeza bagi nilai pulangan pembina:

function Cat(name, age) {
  this.name = name;
  this.age = age;
  this.sayHello = function() {
    console.log("Hello, my name is " + this.name + ", I am " + this.age + " years old.");
  }
  // 返回值为undefined
}

var cat1 = new Cat("Jack", 3);
var cat2 = new Cat("Mimi", 4);

console.log(cat1); // 输出:Cat {name: "Jack", age: 3, sayHello: ƒ}
console.log(cat2); // 输出:Cat {name: "Mimi", age: 4, sayHello: ƒ}

Untuk kod di atas, walaupun pembina Cat tidak mengembalikan nilai pada penghujungnya, dua objek baharu cat1 dan cat2 masih dicipta, dan dengan betul Properties and kaedah ditetapkan untuk setiap objek.

Seterusnya, mari lihat contoh mengembalikan nilai normal:

function Dog(name, age) {
  this.name = name;
  this.age = age;
  this.sayHello = function() {
    console.log("Hello, my name is " + this.name + ", I am " + this.age + " years old.");
  }
  return "This is a new dog."; // 返回一个字符串
}

var dog1 = new Dog("Puppy", 1);
var dog2 = new Dog("Teddy", 2);

console.log(dog1); // 输出:Dog {name: "Puppy", age: 1, sayHello: ƒ}
console.log(dog2); // 输出:Dog {name: "Teddy", age: 2, sayHello: ƒ}

Apabila pembina mengembalikan rentetan, ia tidak menjejaskan penciptaan objek. Dalam kes ini, nilai pulangan pembina diabaikan dan objek baharu masih dikembalikan.

Akhir sekali, mari kita lihat contoh mengembalikan objek:

function Car(model, year) {
  this.model = model;
  this.year = year;
  this.engine = {
    cylinders: 4,
    displacement: 2.0,
    horsepower: 200
  };
  return this.engine; // 返回一个对象
}

var car1 = new Car("BMW", 2017);
var car2 = new Car("Mercedes-Benz", 2018);

console.log(car1); // 输出:{cylinders: 4, displacement: 2.0, horsepower: 200}
console.log(car2); // 输出:{cylinders: 4, displacement: 2.0, horsepower: 200}

Dalam contoh di atas, pembina Kereta mengembalikan objek car1.enjin, jadi objek baru car1 dicipta yang hanya mempunyai objek enjin. Apabila objek car2 dicipta menggunakan pembina yang sama sekali lagi, objek enjin yang sama dikembalikan.

Ringkasan

Melalui contoh di atas, kita dapat melihat bahawa dalam JavaScript, pembina boleh mempunyai nilai pulangan, dan jenis nilai pulangan boleh menjadi sebarang jenis, termasuk nilai biasa yang tidak ditentukan dan objek. Secara lalai, pembina mengembalikan objek baharu Jika pembina mengembalikan nilai yang tidak ditentukan (termasuk null), nilai akan menggantikan objek asal. Memahami peraturan untuk nilai pulangan pembina boleh membantu kami lebih memahami dan menggunakan ciri pengaturcaraan berorientasikan objek dalam JavaScript.

Atas ialah kandungan terperinci Bagaimana untuk mengembalikan nilai daripada pembina dalam javascript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn