gpt4 book ai didi

javascript - 这段 JavaScript 内存中存在哪些对象?

转载 作者:行者123 更新时间:2023-11-29 10:14:39 26 4
gpt4 key购买 nike

给定以下代码,在第 1 行和第 2 行之后内存中有哪些用户定义的对象?

function MyCtor() {}

//At this point a single user-defined object exists, the constructor function `MyCtor`

var v = new MyCtor();

//Here in addition to the constructor function defined above we have `v` (a `MyCtor` instance) and another instance of `MyCtor` acting as `v.__proto__`. So that is 3 objects in total.

最佳答案

第一行之后有两个对象。有函数对象,也有函数的原型(prototype)对象。

(好吧,函数在解析代码时已经创建,所以对象甚至在代码开始执行之前就已经存在。更正确的说法是第一行导致两个对象存在。)

第二行之后只有一个对象,对象的实例。对象的 __proto__ 属性不包含对象的另一个实例,它是对构造函数原型(prototype)对象的引用。

例子:

function MyCtor() {}

console.log(MyCtor.prototype);

var v = new MyCtor();

console.log(v.__proto__);
console.log(MyCtor.prototype === v.__proto__);

输出:

MyCtor { }
MyCtor { }
true

演示:http://jsfiddle.net/323bg/

关于javascript - 这段 JavaScript 内存中存在哪些对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25104209/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com