在函数实例中使用原型增加价值
Add value using prototype in function instance
我的代码中有一个构造函数。我创建了该构造函数的实例。在新创建的实例中,我想使用原型方法添加值或功能。但是我在这样做时遇到错误。这是我的代码小提琴
function a(){
this.d=9
}
a.prototype.one=1;
a.prototype.two=2;
var j= new a();
j.prototype.three=3;
console.log(j)
它应该是构造函数的原型,而不是此函数生成的对象:
a.prototype.three = 3;
不能使用 prototype
键访问对象的原型,因为原型引用不会像这样公开。不过,您可以使用__proto__
属性来执行此操作,但这已被弃用。如果您需要获取对象的原型,您可以使用Object.getPrototypeOf
方法:
Object.getPrototypeOf(j) === a.prototype; // true
这里有点令人困惑,因为"原型"这个词意味着两件事。函数原型是在构造新对象时使用的对象,当函数像构造函数一样使用时。对象原型是对存储继承方法的对象的引用。
J
的原型是未定义的,因为不能直接访问它,所以不能直接将属性 three 设置为 j
的原型。
这就是为什么您可以向a'
的原型添加属性,但不能向j'
原型添加属性,您可以尝试
j.three=3;
或者a.prototype.three = 3;
小提琴 http://jsfiddle.net/s4g2n453/4/
相关文章:
- JQuery使计数器每次更改时都会增加
- 使用“;这个“;JavaScript原型方法中的关键字
- 引用类变量中的原型方法
- 如何增加同时按键总数
- 如何从对象的原型方法访问JavaScript对象属性
- 为什么要包装每一个原型“;类“;JS中具有匿名函数的对象
- 如何使用css动画从中心增加边界线
- Node.js中的JavaScript原型对象效率
- 重载JS'firefox中的对象原型
- JavaScript:单击时相对于父级增加变量值
- “util.inherits”和在NodeJS中扩展原型之间的区别
- 附加到原型属性的Do函数没有闭包
- PaperJS-增加矢量幅度
- 如何每10.6秒从时间戳增加+1
- 使用方括号访问插件原型函数
- 为什么JSON.stringify没有序列化原型值
- 如何通过ajax增加/减少PHP变量值并重新加载函数
- 为什么要返回'这'在导致循环的JavaScript原型中
- 在函数实例中使用原型增加价值
- 增加对象.原型破坏Dojo