ای سی ایم اسکریپت آپلی کیشن
- پچھلے پارہ آبجیکٹ پر مبنی
- پائیدھ پارہ آبجیکٹ کی نوعیت
اشیاء کی تخلیق اور ختم کرنا، جو جاوا اسکریپت کا طریقہ کار ہے، اس کا مفہوم سمجھنا، پورا زبان کو سمجھنے میں بہت اہم ہے۔
تصریف اور نمونہ
اشیاء کی تخلیق کا طریقہ، نئی کی کلمے کے بعد کلاس کا نام لکھنا ہے:
var oObject = new Object(); var oStringObject = new String();
پہلی لائن میں، آپ نے آوبجیکٹ کلاس کا ایک نمونہ بنایا اور اس کو متغیر oObject میں ذخیرہ کیا۔ دوسری لائن میں، آپ نے اسٹرنگ کلاس کا ایک نمونہ بنایا اور اس کو متغیر oStringObject میں ذخیرہ کیا۔ اگر کانسٹرکٹر میں کوئی پارامتر نہیں دیا جاتا تو کروشی کو استعمال نہیں کئے جانا چاہئے۔ اس لئے، پچھلے دو لائن کو اس طرح سے دوبارہ لکھا جاسکتا ہے:
var oObject = new Object; var oStringObject = new String;
اشیاء مرادف
پچھلے چپتر میں، ہم نےمرادف کا مفہومایکم اسکریپت میں، اشیاء کی حقیقی نمائش تک رسائی نہیں کی جاسکتی، صرف اشیاء کی مرادف تک رسائی کی جاسکتی ہے۔ جب کوئی اشیاء بنایا جاتا ہے تو متغیر میں صرف اس اشیاء کی مرادف رکھی جاتی ہے، نہ تو اشیاء کی خود ۔
اشیاء منسوخ
ایکم اسکریپت کا مجموعه میں گاربج کالکشن روتین موجود ہے، جس کا مطلب ہے کہ آپ کو اپنے اشیاء کو مخصوص طور پر ختم نہیں کرنا ہوگا تاکہ حافظہ کو آزاد کر سکیں۔ جب کوئی اشیاء کی مرادف کو کسی کے ذریعے استعمال نہیں کیا جاتا تو اس کو منسوخ (درجعادی) کیا جاتا ہے۔ جب گاربج کالکشن روتین چلائی جاتی ہے تو تمام منسوخ اشیاء ختم کی جاتی ہیں۔ جب کوئی فونکشن اپنی کد کو کچھ کرنے کے بعد مکمل کر لیتا ہے تو گاربج کالکشن روتین چلائی جاتی ہے اور تمام مقامی متغیرات کو آزاد کردیتی ہے، اور دیگر غیر متوقع حالات میں بھی گاربج کالکشن روتین چلائی جاتی ہے۔
把对象的所有引用都设置为 null,可以强制性地废除对象。例如:
var oObject = new Object; // do something with the object here oObject = null;
当变量 oObject 设置为 null 后,对第一个创建的对象的引用就不存在了。这意味着下次运行无用存储单元收集程序时,该对象将被销毁。
每用完一个对象后,就将其废除,来释放内存,这是个好习惯。这样还确保不再使用已经不能访问的对象,从而防止程序设计错误的出现。此外,旧的浏览器(如 IE/MAC)没有全面的无用存储单元收集程序,所以在卸载页面时,对象可能不能被正确销毁。废除对象和它的所有特性是确保内存使用正确的最好方法。
注意:废除对象的所有引用时要当心。如果一个对象有两个或更多引用,则要正确废除该对象,必须将其所有引用都设置为 null。
早绑定和晚绑定
所谓绑定(binding),即把对象的接口与对象实例结合在一起的方法。
早绑定(early binding)是指在实例化对象之前定义它的属性和方法,这样编译器或解释程序就能够提前转换机器代码。在 Java 和 Visual Basic 这样的语言中,有了早绑定,就可以在开发环境中使用 IntelliSense(即给开发者提供对象中属性和方法列表的功能)。ECMAScript 不是强类型语言,所以不支持早绑定。
آدھار، لین بائنڈنگ (late binding) یعنی کمپیلیئر یا انٹرپریٹر کی جانب سے، چلانے سے پہلے ابجیکٹ کی نوعیت کا پتہ نہیں لگتا ہے۔ لین بائنڈنگ کا استعمال کرتے ہوئے، ابجیکٹ کی نوعیت کا چکنا نہیں پڑتا، صرف ابجیکٹ کا کیا کیا خاصیت یا طریقہ کار دستیاب ہے یا نہیں چکنا پڑتا۔ ECMAScript میں تمام متغیرات لین بائنڈنگ کے طور پر استعمال کی جاتی ہیں۔ اس طرح سے بہت سارے ابجیکٹ آپریشنوں کو چلایا جاسکتا ہے، جس میں کوئی سزا نہیں لگتی ہے۔
- پچھلے پارہ آبجیکٹ پر مبنی
- پائیدھ پارہ آبجیکٹ کی نوعیت