javascript如何在类/对象发生实例化后调用新添加的方法?
How does javascript call a newly added method after instantiation of the class/object occured?
请告诉我这是怎么回事…
怎么可能,在myObject实例化之后,我可以添加新的方法到我原来的类/对象构造函数,并得到两个结果…
我希望我必须将mathX实例化为myObject2以使其工作…
// make class/object with properties & methods
function mathX(num1, num2) {
this.factor = 10;
this.num1 = num1;
this.num2 = num2;
this.multiplySum = function() {
return (this.num1 + this.num2) * this.factor;
}
}
// instantiate class/object with properties & methods
var myObject = new mathX(5, 5);
document.write("multiplySum result = " + myObject.multiplySum() + "<br>");
// add new method to class/object AFTER instantiation
mathX.prototype.sumAll = function() {
return this.num1 + this.num2 + this.factor;
}
// immediately use new method on previously instantiated class/object
document.write("sumAll result = " + myObject.sumAll() + "<br>");
// how is this possible? Shouldn't this fail?
// How does javasript call a newly added method after instantiation of the class/object occured?
因为继承是"活的"。
当你创建从另一个对象B继承的对象A时,A不会在本地存储当时B属性的副本。相反,它只是在[[Prototype]]中引用了B。
然后,当你试图访问a的属性,但没有自己的属性与该名称时,将改为咨询B。
所以当你改变一个对象时,你可能会影响所有从这个对象继承的对象。
var obj = {};
console.log(obj.foo); // undefined
Object.prototype.foo = "bar";
console.log(obj.foo); // "bar"
相关文章:
- TinyMCE在新添加的文本区域
- 提交评论不适用于新添加的帖子
- jQuery:更改后的输入值不用于新添加
- 动态表行,将单击事件委派给新添加的元素
- 如何重置新添加的表单输入
- 超时后无法删除新添加的 HTML 元素
- 如何在数组中以ng个重复间隔应用新添加的对象
- jQuery无法在新添加的空跨度内设置光标
- 制作从上一个已知点到新添加点(d3)的路径(线)的动画
- 无法从jQuery可排序列表中删除新添加的项
- jQuery UI Accordian.我需要激活新添加的项目
- 未选择新添加的dom元素
- 如何在剑道UI网格中标记新添加的行
- 我想显示数据库中的数据.如果我们新添加一个表单数据,我想附加显示的新帖子而不使用代码点火器刷新
- Vue.js新添加的元素不是反应性的
- 如何调用从 AJAX 新添加的函数
- 以前添加的图像与新添加的图像一起显示,并插入到表中
- Tinymce如何在新添加的文本区域上调用init
- javascript如何在类/对象发生实例化后调用新添加的方法?
- javaScript可以处理ajax调用中新添加的DOM元素吗?