ການນຳໃຊ້ອາຫານ ECMAScript
- ຫນ້າທີ່ຫລັງ ການນຳໃຊ້ວັດຖຸ
- ຫນ້າທີ່ໜ້າ ຮູບແບບວັດຖຸ
ການສ້າງແລະກຳລັງວັດຖຸຈະຖືກການກຳລັງພາຍໃນຂະບວນການດຳເນີນຂອງ JavaScript, ທີ່ຈະຮູ້ສຶກຫາຄວາມຄິດຂອງການສ້າງແລະກຳລັງວັດຖຸຈະຮູ້ສຶກຫາຄວາມຄິດຢ່າງຫຼາຍຫຼາຍ.
ການປະກາດແລະກຳລັງ
ການສ້າງແລະກຳລັງວັດຖຸຈະຖືກການກຳລັງພາຍໃນຂະບວນການດຳເນີນຂອງ JavaScript, ທີ່ຈະຮູ້ສຶກຫາຄວາມຄິດຂອງການກຳລັງການສ້າງແລະກຳລັງວັດຖຸຈະຮູ້ສຶກຫາຄວາມຄິດຢ່າງຫຼາຍຫຼາຍ.
var oObject = new Object(); var oStringObject = new String();
ການສະໜັບສະໜູນການກຳລັງການສ້າງວັດຖຸທີ່ມີຄວາມຫົວຫາວັດຖຸຫຼັງຈາກຄຳປະກອບ new ແລະຊື່ວັດຖຸທີ່ຈະສ້າງ. ການສ້າງວັດຖຸຈະຖືກຄັ້ງການສ້າງພາຍໃນພາກຂອງຫົວຫາ.
var oObject = new Object; var oStringObject = new String;
ການຫົວຫາວັດຖຸ
ໃນວັນນີ້, ພວກເຮົາໄດ້ສະເໜີຄວາມເຫັນຄວາມຂອງການຫົວຫາ。ໃນ ECMAScript, ບໍ່ສາມາດເຂົ້າເຖິງພາບທາງທີ່ທາງຂອງວັດຖຸ, ແຕ່ພຽງແຕ່ຫາການຫົວຫາວັດຖຸ. ແຕ່ບໍ່ມີຄວາມມີນິຕິທີ່ຈະຖືກຄັ້ງການສ້າງວັດຖຸ, ການຄັ້ງການທີ່ພັກຄັ້ງການທີ່ພັກຄັ້ງການຈະຖືກຄັ້ງການສ້າງພາຍໃນພາກຂອງຫົວຫາ.
ການຍົກຍ້າຍວັດຖຸ
ECMAScript ມີເຄື່ອງການກັກກັນຄວາມສູນເສຍຄວາມມີນິຕິການການກັກກັນເສຍຄວາມມີນິຕິ (garbage collection routine)ວ່າບໍ່ຕ້ອງການກຳລັງລົບວັດຖຸເພື່ອປະກອບຄວາມມີນິຕິ. ເວລາທີ່ບໍ່ມີການຫົວຫາວັດຖຸອີກອີກໜຶ່ງຄັ້ງວ່າວັດຖຸດັ່ງກ່າວຈະຖືກກຳລັງການຍົກຍ້າຍ (dereference). ເວລາທີ່ກຳລັງການກັກກັນເສຍຄວາມມີນິຕິຄວາມມີນິຕິທັງໝົດທີ່ຖືກຍົກຍ້າຍຈະຖືກລົບ. ເວລາທີ່ການຫຼິ້ນງານຂອງຫົວຫາຈະສຳເລັດການປະຕິບັດການຂອງຫົວຫາຄວາມມີນິຕິຈະດຳເນີນການກັກກັນເສຍຄວາມມີນິຕິທັງໝົດທີ່ຖືກຍົກຍ້າຍ, ຍົກຍ້າຍທັງທີ່ມີທາງຄວາມມີນິຕິທີ່ບໍ່ສາມາດຄາດຄະເນໄດ້.
把对象的所有引用都设置为 null,可以强制性地废除对象。例如:
var oObject = new Object; // do something with the object here oObject = null;
当变量 oObject 设置为 null 后,对第一个创建的对象的引用就不存在了。这意味着下次运行无用存储单元收集程序时,该对象将被销毁。
每用完一个对象后,就将其废除,来释放内存,这是个好习惯。这样还确保不再使用已经不能访问的对象,从而防止程序设计错误的出现。此外,旧的浏览器(如 IE/MAC)没有全面的无用存储单元收集程序,所以在卸载页面时,对象可能不能被正确销毁。废除对象和它的所有特性是确保内存使用正确的最好方法。
ຄໍາເຕືອນ:ຕ້ອງຫັນຫາການຖອນຫລັງຂອງວັດຖຸທັງໝົດ. ຖ້າວັດຖຸມີຫລັງກັບຫລາຍຫນານເປັນສອງຫລານແລະຫລາຍຫນານອີກ ເພື່ອຖອນວັດຖຸພະຍາຍາມຢ່າງຖືກຕ້ອງ ຕ້ອງກວດຫລັງກັບຫລັງທັງໝົດ.
ການປະສົມເບື້ອງຕົ້ນ ແລະ ປະສົມຫລັງ
ການປະສົມ (binding) ແມ່ນວິທີທີ່ຈະປະສົມອຸປະກອນວິທີຫລັງກັບຮູບແບບວັດຖຸ.
ການປະສົມປະສານເບື້ອງຕົ້ນ (early binding) ແມ່ນວ່າກ່ອນຈະສ້າງວັດຖຸ ຈະກໍານົດປະສົມປະສານຂອງວັດຖຸພາຍໃນຫົວໜ້າຫລື ຄູ່ພິມບົດຄັດບັນຍາບໍ່ມີການປະສົມປະສານຫລັງ. ໃນພາສາຫລັງຄຳວັດຖຸເຊັ່ນ Java ແລະ Visual Basic ທີ່ມີການປະສົມປະສານເບື້ອງຕົ້ນ ຈະອະນຸຍາດໃຫ້ພວກເຮົາໃຊ້ IntelliSense (ພາສາຫລັງຄຳວັດຖຸທີ່ຈະສະໜອງລາຍການປະສົມປະສານຫລັງຫລືວິທີບັນຍາຂອງວັດຖຸ) ໃນສະຖານທີ່ພັດທະນາ. ECMAScript ບໍ່ແມ່ນພາສາທີ່ມີຮູບແບບຄວາມຖືກຕ້ອງ ແລະ ບໍ່ສະໜັບສະໜູນການປະສົມປະສານເບື້ອງຕົ້ນ.
ຕອນນັ້ນຂອງການປະສົມປະສານຫລັງ (late binding) ແມ່ນວ່າ ຄູ່ຜະລິດຫົວໜ້າຫລື ຄູ່ພິມບົດຄັດບັນຍາບໍ່ຮູ້ວ່າຮູບແບບວັດຖຸ. ການນຳໃຊ້ປະສົມປະສານຫລັງນີ້ ບໍ່ຕ້ອງກວດຮູບແບບວັດຖຸ ແຕ່ພຽງແຕ່ກວດວ່າວັດຖຸມີຜະລິດຫລັງຫລືວິທີບັນຍາ. ທັງໝົດສິ່ງພາຍໃນ ECMAScript ທັງໝົດແມ່ນມີການປະສົມປະສານຫລັງ. ນີ້ຈະອະນຸຍາດໃຫ້ມີການດຳເນີນວັດຖຸວັດຖຸຫລາຍຫລາຍຫນານ ແລະ ບໍ່ມີຄວາມຕ້ອງສົງກັນ.
- ຫນ້າທີ່ຫລັງ ການນຳໃຊ້ວັດຖຸ
- ຫນ້າທີ່ໜ້າ ຮູບແບບວັດຖຸ