Rumah  >  Artikel  >  hujung hadapan web  >  Analisis ringkas sifat dan kaedah objek akses JavaScript serta kemahiran perbezaan_javascript mereka

Analisis ringkas sifat dan kaedah objek akses JavaScript serta kemahiran perbezaan_javascript mereka

WBOY
WBOYasal
2016-05-16 15:32:121100semak imbas

Atribut ialah pembolehubah yang digunakan untuk mewakili ciri-ciri objek, seperti warna, saiz, berat, dan lain-lain kaedah adalah fungsi yang digunakan untuk mewakili operasi objek, seperti berlari, bernafas, melompat, dll.

Dalam JavaScript, operator "." biasanya digunakan untuk mengakses nilai sifat objek. Atau gunakan [] sebagai tatasusunan bersekutu untuk mengakses sifat objek.

Sifat dan kaedah objek secara kolektif dipanggil ahli objek.

Mengakses sifat objek

Dalam JavaScript, anda boleh menggunakan "." dan "[]" untuk mengakses sifat objek.

1. Gunakan "." untuk mengakses sifat objek

Sintaks:

objectName.propertyName

Antaranya, objectName ialah nama objek dan propertyName ialah nama harta.

2. Gunakan "[ ]" untuk mengakses sifat objek

Sintaks:

objectName[propertyName]

Antaranya, objectName ialah nama objek dan propertyName ialah nama harta.

Kaedah untuk mengakses objek

Dalam JavaScript, anda hanya boleh menggunakan "." untuk mengakses kaedah objek.

Sintaks:

objectName.methodName()

Antaranya, objectName ialah nama objek dan methodName() ialah nama fungsi.

[Contoh 5-1] Buat kelas Orang:

function Person() {
  this.name=" 张三 "; // 定义一个属性 name
  this.sex=" 男 "; // 定义一个属性 sex
  this.age=22; // 定义一个属性 age
  this.say=function(){ // 定义一个方法 say()
    return "嗨!大家好,我的名字是 " + this.name + " ,性别是 " + this.sex + ",今年 " + this.age +"岁!";
  }
}
var zhangsan=new Person();
alert("姓名:"+zhangsan.name); // 使用“.”来访问对象属性
alert("性别:"+zhangsan.sex);
alert("年龄:"+zhangsan["age"]); // 使用“[ ]”来访问对象属性
alert(zhangsan.say);  // 使用“.”来访问对象方法

PS: Analisis ringkas tentang perbezaan antara kaedah "." dan "[]" bagi sifat akses objek

Dalam JavaScript, operator "." biasanya digunakan untuk mengakses nilai sifat objek. Atau gunakan [] sebagai tatasusunan bersekutu untuk mengakses sifat objek. Tetapi apakah perbezaan antara kedua-dua kaedah ini?

Sebagai contoh, baca nilai atribut sifat dalam objek:

objek.harta

  objek['harta']

Kedua-dua kaedah di atas boleh mencapai akses atribut.

1. Perbezaan tatabahasa

Nama atribut objek dalam tatatanda titik ialah pengecam, manakala nama atribut yang terakhir ialah rentetan.

2. Perbezaan fleksibiliti

Dalam pengaturcaraan JavaScript, anda boleh mencipta sebarang bilangan sifat untuk objek. Tetapi apabila menggunakan pengendali "." untuk mengakses sifat objek, nama harta diwakili oleh pengecam. Dalam program JavaScript, pengecam mesti dimasukkan secara literal ia bukan jenis data, jadi program tidak boleh beroperasi padanya. Iaitu, pengecam adalah statik dan mesti dikodkan dalam atur cara.

Apabila menggunakan tatasusunan[] untuk mengakses atribut objek, nama atribut diwakili oleh rentetan. Strings ialah jenis data JavaScript, jadi ia boleh dimanipulasi dan dibuat semasa program sedang berjalan.

3. Perbezaan prestasi

Tatatanda

Tatasusunan[] akan melaksanakan operasi ekspresi apabila mengakses nilai atribut. Perwakilan titik mengakses secara langsung nilai atribut, dan secara teorinya kecekapan pelaksanaan akan lebih tinggi daripada perwakilan tatasusunan. Prestasi sebenarnya boleh diabaikan.

Sesetengah senario mesti menggunakan perwakilan tatasusunan untuk mengakses nilai atribut secara dinamik, yang tidak boleh dicapai dengan perwakilan titik.

Secara amnya, tidak banyak perbezaan antara kedua-dua kaedah ini, dan kedua-duanya mempunyai senario penggunaan yang sepadan. Notasi titik biasanya digunakan sebagai objek statik untuk mengakses sifat. Perwakilan tatasusunan sangat berguna apabila mengakses atribut secara dinamik.

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