Atribut data dan atribut ingatan bagi kemahiran JavaScript note_javascript

WBOY
Lepaskan: 2016-05-16 15:07:08
asal
1420 orang telah melayarinya

Dalam JavaScript, sifat objek dibahagikan kepada dua jenis: sifat data dan sifat memori:

Perbezaan antara dua sifat

Kami menggunakan Object.defineProperty() untuk mula-mula merasakan perbezaan antara keduanya secara intuitif.

Kaedah menetapkan sifat data menggunakan Object.defineProperty() adalah seperti berikut

var obj = {};
Object.defineProperty(obj, "prop", {
value: 1,
writable: true, //可写性
enumerable: true, //可枚举性
configurable: true //设置该属性是否能被删除,以及enumerable属性是否可以被修改
})
Salin selepas log masuk

Kaedah menetapkan sifat memori menggunakan Object.defineProperty() adalah seperti berikut

var obj = {};
Object.defineProperty(obj, "prop", {
get
set
enumerable: true, //可枚举性
configurable: true //设置该属性是否能被删除,以及enumerable属性是否可以被修改
})
Salin selepas log masuk

Daripada contoh di atas, kami mendapati bahawa atribut memori tidak mempunyai dua nilai atribut dan boleh ditulis, tetapi digantikan dengan set dan dapatkan atribut.

Sifat Memori

Setelah melihat perbezaan intuitif antara atribut data dan atribut memori, mari kita lihat secara terperinci pada atribut memori, atribut yang mudah diabaikan (ini saya TT).

Perbezaan terbesar antara atribut memori dan atribut data ialah penambahan getter/setters, yang melaluinya nilai atribut boleh dikendalikan dan beberapa fungsi praktikal boleh dilaksanakan.

//example1
function serialnum() {
var n =1; 
var prop = null;
Object.defineProperty(this, "n", {
get: function() {
return n;
},
set: function(value) {
if(value > n) n = value;
else throw '请输入一个大于n的值';
}
})
}
var obj = new serialnum();
obj.n = 2;
//2
obj.n = 0;
//Uncaught 请输入一个大于n的值
Salin selepas log masuk

Dalam contoh di atas, fungsi set digunakan untuk mengawal julat nilai n.

Editor akan memperkenalkan anda kepada atribut storan atribut data js di sini, saya harap ia akan membantu anda!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!