日期:2014-05-16  浏览次数:20409 次

JavaScript:继承和原型链(译)

原文:Inheritance and the prototype chain

译者:youngsterxyf

对于具备基于类的编程语言(如Java或C++)经验的程序员来说,JavaScript有点混乱,因为它是一种动态语言,并且不提供class的实现(虽然关键字class是保留的,不可用作变量名)。

说到继承,JavaScript只有一种结构:对象。每个对象都有一个内部链接指向另一个对象,这个对象称为原型(prototype)。那个原型对象也有自己的原型,如此直到某个对象以null作为其原型。null,根据定义,没有原型,作为这种原型链的最后一环而存在。

以原型链实现继承

继承属性

JavaScript对象可看作是动态地装载属性(这里指自有属性)的”包包”,并且每个对象都有一个链指向一个原型对象。如下即为当尝试访问一个属性时发生的事情:

// 假设有个对象o,其原型链如下所示:
// {a: 1, b: 2} ---> {b: 3, c: 4} ---> null
// 'a'和'b'是o的自有属性。

// 本例中,someObject.[[Prototype]]指定someObject的原型。
// 这完全是一种标记符号(基于ECMAScript标准中所使用的),不可用于脚本中。

console.log(o.a);   // 1
// o有一个自有属性'a'吗?是的,其值为1
 
console


                        
友情链接: 爱易网 云虚拟主机技术 云服务器技术 程序设计技术 开发网站 APP开发教程
Copyright © 2013-2024 爱易网页 当前在线:297人  网站在4时15分44秒内访问总人数:82810人 当前 13.72%  粤ICP备18100884号-2