开发者社区> 问答> 正文

JavaScript中构造函数导致的不同的作用域链和标识符解析怎么理解?

JavaScript高级程序设计中的6.2.2(p.146)中提到,构造函数模型有这样一个问题:

以这种方式创建函数,会导致不同的作用域链和标识符解析,但创建的Function新实例的新机制仍然是相同的。
这句话该如何理解呢?

展开
收起
a123456678 2016-03-11 16:05:17 2268 0
1 条回答
写回答
取消 提交回答
  • 我的理解是利用构造函数模式创建的实例是互不相同的,那么由构造函数产生的实例的属性也是互不相同的,虽然创建一个Function新实例的机制是一样的,但是他们已经不是在一个作用域链上了。

    另外你可以从new关键字的含义上理解:

    创建一个空对象
    将空对象的__proto__指向构造函数的prototype
    使用空对象作为上下文调用构造函数
    所以通过new Function产生的实例并不是同一个实例

    2019-07-17 18:59:30
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
JavaScript面向对象的程序设计 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载

相关镜像