为什么这个原型字段优先于相同的对象字段
Why is this prototype field taking precedence over the same object field?
我正在学习Javascript原型,并试图理解为什么会发生这种情况。这是我的理解,当寻找一个属性的值,对象之前检查任何原型。什么时候,这个印"棕色"?
function Box(item) {
this.item = item;
}
Box.prototype.color = "brown";
Box.color = "blue";
var box = new Box(null);
console.log(box.color);
>>> brown
Box.color = "blue";
将属性赋给函数 Box
,而不是赋给该函数的实例。您可以通过运行console.dir(box)
和console.dir(Box)
来验证。
如果你想把属性分配给一个实例,你必须先创建这个实例:
Box.prototype.color = "brown";
var box = new Box(null);
box.color = "blue"
或者在构造函数中赋值:
function Box(item) {
this.item = item;
this.color = 'blue';
}
因为Box.color
是构造函数的属性,它永远不会被赋值给实例对象。初始化box
对象后,它只获得this.item
和prototype.color
属性。
相关文章:
- 如何访问对象内部的“categoryIds”字段/键,该对象包含mongodb's `ObjectId(s)`数
- MongoDB-通过比较集合和对象的数组来返回现有字段的数组
- 如何创建具有默认值的JavaScript对象字段?(AngularJS模型相关)
- 如何在angularjs中传递对象字段作为指令参数
- 更新嵌套对象的多个字段
- 创建一个带有可变字段的json对象
- 对象中可选字段的流类型
- 有了字段的名称,我如何用空白数据初始化对象的未定义字段
- FilterHeader不适用于模型字段类型对象
- 访问KendoUI中Datasource过滤对象的字段
- 在jquery中,从同一对象的属性设置输入字段和标签的正确方法是什么
- 如何在初始化过程中引用同一对象内的对象字段
- 如何使用Typescript创建一个包含对象的字段的新对象
- 将一个html表转换为json对象并将其发送到php页面,该表有一个输入字段
- 编码为深度嵌套对象的 HTML 字段 json
- 在 Java 中访问 JavaScript 对象的字段
- Rails的问题,haml + javascript在字段对象的模糊
- 即使对于非空窗体,FormData对象也返回空.对于具有2个输入字段的表单,
- findAndModify,如何对文档进行操作's数组搜索对象并更改字段值
- Rally SDK 2 标签选择器是否有必填字段?对象没有方法'getContextPath'