1.JavaScript中原型链寻找数据的方式
首先看一段下面的代码:
function MyObject(){}//自定义一个函数
//给自定义函数添加原型变量(属性)
MyObject.prototype.str = 'JavaScript';
//创建自定义对象
var myObj = new MyObject();
alert(myObj.str);//JavaScript
代码运行结果是JavaScript
,实际上myObj是调用的实例化对象。而str是MyObject.prototype对象上挂载的字符串,这个过程是怎样执行的呢?这就涉及到原型链,原型链是什么呢?对象和原型之间的链接,叫做原型链。实际上分析程序执行的步骤可以发现,myObj首先从自己本身的对象中查找变量和方法,如果没有找到才去原型链中进行向上 查找变量和方法。
2.原型链存在的验证
为了验证原型链的存在,看下面的代码:
function MyObject(){
//给MyObject添加变量
this.str = 'HTML5';
}
//此时也给MyObject添加原型变量,并且两者的名字一样,而且在方法中str变量定义的后面
MyObject.prototype.str = 'JavaScript';
var myObj = new MyObject();
alert(myObj.str);//HTML5
* 实际上从上面的代码中可以验证原型链存在的合理性,原型链的顶端是Object对象。程序是一层一层向上寻找的。*