ای سی ایم اسکریپت تکنیکهای سمت اوبجیکت
- پچھلے پیج کلوز (closure)
- آئندہ پیج آبجیکٹ کا استعمال
موضوعات پر مبنی بر شیء
对象
ECMA-262 把对象(object)定义为“属性的无序集合,每个属性存放一个原始值、对象或函数”。严格来说,这意味着对象是无特定顺序的值的数组。
尽管 ECMAScript 如此定义对象,但它更通用的定义是基于代码的名词(人、地点或事物)的表示。
类
每个对象都由类定义,可以把类看做对象的配方。类不仅要定义对象的接口(interface)(开发者访问的属性和方法),还要定义对象的内部工作(使属性和方法发挥作用的代码)。编译器和解释程序都根据类的说明构建对象。
实例
程序使用类创建对象时,生成的对象叫作类的实例(instance)。对类生成的对象的个数的唯一限制来自于运行代码的机器的物理内存。每个实例的行为相同,但实例处理一组独立的数据。由类创建对象实例的过程叫做实例化(instantiation)。
在前面的章节我们提到过,ECMAScript 并没有正式的类。相反,ECMA-262 把对象定义描述为对象的配方。这是 ECMAScript 逻辑上的一种折中方案,因为对象定义实际上是对象自身。即使类并不真正存在,我们也把对象定义叫做类,因为大多数开发者对此术语更熟悉,而且从功能上说,两者是等价的。
面向对象语言的要求
一种面向对象语言需要向开发者提供四种基本能力:
- 封装 - 把相关的信息(无论数据或方法)存储在对象中的能力
- 聚集 - 把一个对象存储在另一个对象内的能力
- 继承 - 由另一个类(或多个类)得来类的属性和方法的能力
- 多态 - 编写能以多种方法运行的函数或方法的能力
ECMAScript 支持这些要求,因此可被是看做面向对象的。
آبجیکٹ کا بنیاد
ای سی ایم اے اسکریپٹ میں، آبجیکٹ اور اور کوالٹیو (attribute) سے بنا ہوتا ہے، کوالٹیو کسی بھی بنیادی جائزے یا رجوع کا حامل بھی ہوسکتا ہے، یا بھی کسی بھی رجوع کا حامل بھی ہوسکتا ہے۔ اگر کوالٹیو میں فونکشن رکھا گیا ہے تو وہ آبجیکٹ کا طریقہ کار (method) کے طور پر دیکھا جائے گا، یا تاریکا کوالٹیو آبجیکٹ کی امتیازی (property) کے طور پر دیکھی جائے گی۔
- پچھلے پیج کلوز (closure)
- آئندہ پیج آبجیکٹ کا استعمال