关于javascript中变量是如何存储调用、以及函数的继承实现
2011-08-09 17:17 danhuang 阅读(524) 评论(1) 编辑 收藏 举报
函数也是对象,我相信大家都明白,函数对象内部有[[Construct]]方法和[[Call]]方法,[[Construct]]用于构造对象,[[Call]]用于函数调用,只有使用new操作符时才触发[[Construct]]逻辑。
在javascript中,可以通过prototype来实现继承关系,如下图所示:
我们可以通过fn.a访问数据,例如代码:
functtion qf( a, b){ function fn(c){
this.a = a; this.c = "I am fn's body ";
this.b = b;
} }
qf.prototype = new fn();
var testfn = new qf("aa","bb");
document.write(testfn.c);
大家都清楚,javascript中的局部变量和全局变量,但是局部变量和全局变量是如何实现调用的呢,以及在javascript运行的时候,内存是如何存储的呢?
Function中参变量的调用执行关系机制:
当函数在function内部使用变量c的时候,首先会在function内部的variable object中查找属性c,如果查找成功则使用该变量的value,如果查找不到,根据链表式查找,他会寻找全局variable object中的属性c。