Matukio ya Mtu wa ES5
- Kweli kwenye Mwongozo wa kina wa JS
- Pya kwenye Mifano ya kifaa ya JS
ECMAScript 5 (2009) walifanya kwa JavaScript kipya kwa kumekuwa na vifaa vya kifaa kwa sababu ya kufikia.
Kumalisha kinaobject
// Kuunda kinaobject kwa kuzingatia kinaobject kinafuata Object.create() // Kuongeza au kurekeza tabia kinaobject Object.defineProperty(object, property, descriptor) // Kuongeza au kurekeza tabia kinaobject Object.defineProperties(object, descriptors) // Kuagiza tabia Object.getOwnPropertyDescriptor(object, property) // Inatoa orodha ya tabia zote Object.getOwnPropertyNames(object) // Kuagiza prototipo Object.getPrototypeOf(object) // Inatoa orodha ya tabia zilizotumika Object.keys(object)
Kuproteja kinaobject
// Kupunguza kuingiza tabia kinaobject Object.preventExtensions(object) // Ikiwa tabia inaweza kuongezwa kinaobject, ita kuwa true Object.isExtensible(object) // Kupunguza kumwambia kinaobject kila muhimu (hakupewa thamani) Object.seal(object) // Ikiwa kinaobject kinahifadhiwa, ita kuwa true Object.isSealed(object) // Kupunguza kumwambia kinaobject kila muhimu Object.freeze(object) // Ikiwa kinaobject kinafichwa, ita kuwa true Object.isFrozen(object)
Kurekeza thamani ya tabia
Inafuatilia
Object.defineProperty(object, property, {value : value)
mimba
Mfano huu kurekeza tabia ya thamani:
const person = { firstName: "Bill", lastName : "Gates", language : "EN" }; // Kurekeza tabia Object.defineProperty(person, "language", {value : "NO"});
Kumwambia meta-data
ES5 inahidi kwa kumwambia meta-data ya tabia zifuatavyoke:
writable : true // 属性值可更改 enumerable : true // 属性可枚举 configurable : true // 属性可重新配置
writable : false // 属性值不可更改 enumerable : false // 属性不可枚举 configurable : false // mafanikio hayakufanyiwa mabadiliko
ES5 inaonesha kusasaabisha getter na setter:
// kuwa mtaaliko get: function() { return language } // kuwa mtaaliko set: function(value) { language = value }
Mfano hii inasababisha language kuwa bila hatua:
Object.defineProperty(person, "language", {writable:false});
Mfano hii inasababisha language kuingia kama mafanikio yenye muhimu:
Object.defineProperty(person, "language", {enumerable:false});
Kuonyesha mafanikio yote
Mfano hii inaonyesha mafanikio ya kiume yote:
mimba
const person = { firstName: "Bill", lastName : "Gates", language : "EN" }; Object.defineProperty(person, "language", {enumerable:false}); Object.getOwnPropertyNames(person); // kuwaarifu taarifa ya mafanikio ya kiume
Kuonyesha mafanikio yenye muhimu
Mfano hii inaonyesha mafanikio yenye muhimu ya kiume:
mimba
const person = { firstName: "Bill", lastName : "Gates", language : "EN" }; Object.defineProperty(person, "language", {enumerable:false}); Object.keys(person); // kuwaarifu taarifa ya mafanikio yenye muhimu
Ongeza mafanikio
Mfano hii inaongeza mafanikio mpya kwa kiume:
mimba
// kuanzisha kiume const person = { firstName: "Bill", lastName : "Gates", language : "EN" }; // Ongeza mafanikio Object.defineProperty(person, "year", {value:"2008"});
Ongeza Getter na Setter
Object.defineProperty()
Methodu huzingatia kuongeza Getter na Setter:
mimba
// kuanzisha kiume const person = {firstName:"Bill", lastName:"Gates"}; // kuwa mtaaliko Object.defineProperty(person, "fullName", { get: function () {return this.firstName + " " + this.lastName;} });
mimba ya kinalesha
// kuwa kiume const obj = {counter:0}; // kuwa mtaaliko Object.defineProperty(obj, "reset", { get : function () {this.counter = 0;} }); Object.defineProperty(obj, "increment", { get : function () {this.counter++;} }); Object.defineProperty(obj, "decrement", { get : function () {this.counter--;} }); Object.defineProperty(obj, "add", { set : function (value) {this.counter += value;} }); Object.defineProperty(obj, "subtract", { set : function (i) {this.counter -= i;} }); // Tukio la kina: obj.reset; obj.add = 5; obj.subtract = 1; obj.increment; obj.decrement;
- Kweli kwenye Mwongozo wa kina wa JS
- Pya kwenye Mifano ya kifaa ya JS