JS深刻理解补充

来源:互联网 发布:数据透视表又叫做什么 编辑:程序博客网 时间:2024/05/01 16:18

对于函数的理解,首先看一个函数定义:

function functionDefined(){}

        显而易见,functionDefined 为函数名字,在js中为指向这个函数体的指针,代表这个函数的指针的变量,并且和原始数据类型一样存储在栈中。而functionDefined函数体则存储在堆中。每当new出一个函数的实例,就会利用构造函数new出实例,并且存储在堆中。也就是对functionDefined函数体的拷贝并且进行存储。

       知道了这个,我们再来看对象冒充:

function functionDefined(color){}

function createObject(){

   this.functionDefinedCopy=functionDefined;

   this.functionDefinedCopy('color');

  delet this.functionDefinedCopy;

}

在此函数中将functionDefined的值传给了functionDefinedCopy,使得functionDefinedCopy指向了函数体。并以此来冒充functionDefined。执行其中的方法。

0 0
原创粉丝点击