在这个JavaScript中,内存中存在哪些对象
What objects are present in memory in this JavaScript?
给定以下代码,在第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.
第一行之后有两个对象。一个是函数对象,一个是函数的原型对象。
(好吧,函数已经在代码解析时创建了,所以对象甚至在代码开始执行之前就存在了。更正确的说法是,第一行导致两个对象存在。
第二行之后只有一个对象,即对象的实例。对象的__proto__
属性不包含该对象的另一个实例,它是构造函数的原型对象的引用。
的例子:
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/
相关文章:
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 验证会话中是否存在对象's数组
- 使用js/jQuery检查对象(而不是元素)是否真的存在
- 对象为null或IE9中存在未定义错误
- 如何通过json对象选项卡中的Id来检查对象是否存在
- underline-js:将键对象与数组键对象进行比较,如果存在,则移除现有的添加新的
- 查找数组's按属性不存在于另一个数组中的对象
- javascript检查对象存在
- 用javascript在对象上创建不存在的方法
- 为什么没有从数组中存在的对象中删除属性
- 在'用于'如果javascript中不存在对象属性,则循环
- 如何检查数组中是否存在对象
- 检查对象中是否存在对象键
- Url.Action 错误不存在对象
- javascript中是否存在对象/数组
- 如何在THRE.js中检查场景中是否存在对象
- Lodash查找数组中是否存在对象属性
- 如果变量存在...对象与变量,null与未定义
- 比较2个数组以查看是否存在对象
- 设计模式- JavaScript.安全提取深层(可能不存在)对象属性的通用函数