ای سی ایم اسکریپت آپلکیشن

اشیاء کی تعمیر اور ختم کردینا، JavaScript کا نفاذ میں ہوتا ہے، اس کا مفہوم سمجھنا، پورا زبان سمجھنے کے لئے بہت اہم ہے.

دستاویز اور نمائش

اشیاء کی تعمیر وچوکش کا کلچر کے بعد، اس کی نوعیت کا نام دینے کے بعد ہوتی ہے:

var oObject = new Object();
var oStringObject = new String();

پہلی سطر میں، آپ نے Object کی نوعیت کا ایک مثال بنایا اور اس کو oObject میں ذخیرہ کردیا. دوسری سطر میں، آپ نے String کی نوعیت کا ایک مثال بنایا اور اس کو oStringObject میں ذخیرہ کردیا. اگر کانستروکشن میں کوئی پارامتر نہیں ہوتا تو برکچرز نہیں ضروری ہوتی ہیں. اس لئے آپ نے اپنے پچھلے دو سطر کو اس طرح دوبارہ لکھ سکتے ہیں:

var oObject = new Object;
var oStringObject = new String;

اشیاء حوالہ

پچھلے چپتر میں، ہم نےحوالہ کی نوعیت کا مفہومECMAScript میں، اشیاء کی حقیقی نمائش تک نہیں پہنچ سکتا، صرف اشیاء کا حوالہ پہنچ سکتا ہے. جب کوئی اشیاء پیدا کی جاتی ہے تو وچوکش میں رکھا جاتا ہے اشیاء کا حوالہ نہیں اشیاء کی خود.

اشیاء منسوخ

ECMAScript وچوکش کا مجموعه نافع جمعی (garbage collection routine) رکھدای، معنی وچ ایسا ہوکہ آپ نے اشیاء کو ختم کردیا نہیں کریں گے تاکہ ممبرات رکھنے کی کوشش کریں. جب کوئی اشیاء کی مراد کا حوالہ نہیں رہتا تو اس کو منسوخ کیا جاتا ہے. جب وچوکش کا مجموعه نافع جمعی چلایا جاتا ہے تو سب منسوخ اشیاء ختم کردی جاتی ہیں. جب کوئی فنکشن اپنی کد کا نفاذ مکمل کردا ہے تو وچوکش کا مجموعه نافع جمعی چل جاتا ہے، سب لوکل ممبرات کو رکھتا ہے، اور کچھ دیگر غیر متوقع حالات میں بھی وچوکش کا مجموعه نافع جمعی چل جاتا ہے.

把对象的所有引用都设置为 null,可以强制性地废除对象。例如:

var oObject = new Object;
// do something with the object here
oObject = null;

当变量 oObject 设置为 null 后,对第一个创建的对象的引用就不存在了。这意味着下次运行无用存储单元收集程序时,该对象将被销毁。

每用完一个对象后,就将其废除,来释放内存,这是个好习惯。这样还确保不再使用已经不能访问的对象,从而防止程序设计错误的出现。此外,旧的浏览器(如 IE/MAC)没有全面的无用存储单元收集程序,所以在卸载页面时,对象可能不能被正确销毁。废除对象和它的所有特性是确保内存使用正确的最好方法。

ਧਿਆਨ:ਆਬਜੈਕਟ ਦੀਆਂ ਸਾਰੀਆਂ ਰੈਫਰੈਂਸਾਂ ਹਟਾਉਣ ਤੇ ਬਹੁਤ ਸਰਵਰ ਹੈ।ਇੱਕ ਆਬਜੈਕਟ ਦੋ ਜਾਂ ਵੱਧ ਰੈਫਰੈਂਸ ਵਾਲਾ ਹੈ, ਤਾਂ ਆਬਜੈਕਟ ਨੂੰ ਸਹੀ ਤਰ੍ਹਾਂ ਹਟਾਉਣ ਲਈ ਇਸ ਦੀਆਂ ਸਾਰੀਆਂ ਰੈਫਰੈਂਸਾਂ ਨੂੰ null ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ。

ਇਰੀ ਬਾਈਂਡਿੰਗ ਅਤੇ ਲੈਟ ਬਾਈਂਡਿੰਗ

ਬਾਈਂਡਿੰਗ ਇਹ ਹੈ ਕਿ ਆਬਜੈਕਟ ਦੇ ਇੰਟਰਫੇਸ ਨੂੰ ਆਬਜੈਕਟ ਇੰਸਟੈਂਸ ਨਾਲ ਜੋੜਨ ਦਾ ਤਰੀਕਾ。

ਇਰੀ ਬਾਈਂਡਿੰਗ ਇਹ ਹੈ ਕਿ ਆਬਜੈਕਟ ਦੇ ਪ੍ਰਤੀਯੋਗੀ ਅਤੇ ਮੈਥਾਡ ਨੂੰ ਇੰਸਟੈਂਸੇਸ਼ਨ ਤੋਂ ਪਹਿਲਾਂ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤੇ ਜਾਂਦੇ ਹਨ, ਤਾਕਿ ਕੰਪਾਇਲਰ ਜਾਂ ਇੰਟਰਪ੍ਰਿਟਰ ਮੁੱਢਲਾ ਮੈਕਿਨੇਜ਼ ਕੰਡੀਸ਼ਨ ਕਰ ਸਕਣ।ਜਵਾਬੀ ਲਾਗੂ ਅਤੇ ਵਿਜੂਅਲ ਬੈਸਿਕ ਵਰਗੇ ਭਾਸ਼ਾਵਾਂ ਵਿੱਚ, ਇਰੀ ਬਾਈਂਡਿੰਗ ਨਾਲ, ਇੰਟੈਲੀਸੈਂਸ (ਜਿਵੇਂ ਕਿ ਵਿਕਾਸ ਵਾਲਿਆਂ ਨੂੰ ਆਬਜੈਕਟ ਵਿੱਚ ਪ੍ਰਤੀਯੋਗੀ ਅਤੇ ਮੈਥਾਡ ਦੀ ਸੂਚੀ ਪ੍ਰਦਾਨ ਕਰਨ ਵਾਲੀ ਸਹੂਲਤ) ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ।ECMAScript ਇੱਕ ਫਰਕੀ ਟਾਈਪ ਭਾਸ਼ਾ ਨਹੀਂ ਹੈ, ਇਸ ਲਈ ਇਰੀ ਬਾਈਂਡਿੰਗ ਨਹੀਂ ਸਮਰਥਿਤ ਹੈ。

ਇੱਕ ਹੋਰ ਪਾਸੇ, ਲੈਟ ਬਾਈਂਡਿੰਗ ਨੂੰ ਦੇਖੋ ਹੈ ਕਿ ਕੰਪਾਇਲਰ ਜਾਂ ਇੰਟਰਪ੍ਰਿਟਰ ਰਨ ਤੋਂ ਪਹਿਲਾਂ ਆਬਜੈਕਟ ਦਾ ਟਾਈਪ ਨਹੀਂ ਜਾਣਦੇ।ਲੈਟ ਬਾਈਂਡਿੰਗ ਦੀ ਵਰਤੋਂ ਨਾਲ, ਆਬਜੈਕਟ ਦੇ ਟਾਈਪ ਦੀ ਚੇਕ ਨਹੀਂ ਕਰਨੀ ਹੁੰਦੀ, ਸਿਰਫ ਆਬਜੈਕਟ ਨੂੰ ਸਪੋਰਟ ਕਰਨ ਵਾਲੇ ਅਤੇ ਮੈਥਾਡ ਹੋਣ ਨੂੰ ਚੇਕ ਕਰਨਾ ਹੈ।ECMAScript ਵਿੱਚ ਸਾਰੇ ਵੇਰਵੇ ਲੈਟ ਬਾਈਂਡਿੰਗ ਮੱਥੋਡ ਨੂੰ ਅਪਣਾਉਂਦੇ ਹਨ।ਇਸ ਤਰ੍ਹਾਂ ਬਹੁਤ ਸਾਰੇ ਆਬਜੈਕਟ ਓਪਰੇਸ਼ਨ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੱਤੀ ਜਾਂਦੀ ਹੈ, ਬੇਕਾਰ ਕੀਮਤ ਨਹੀਂ ਹੈ。