Javascript原型不会更新方法
Javascript prototype won't update a method
我正在学习使用javascript的prototype
功能(不是库)。我想我可以用MyObject.prototype.myFunction = function () { ... }
代替一个对象的方法。显然这行不通。
下面的代码定义了一个对象,并使用prototype
替换了它的函数。在浏览器中运行它,控制台仍然显示原始输出。
<script type="text/javascript">
function TestObject() {
this.testFunction = function() {
console.log("Original function output");
}
}
// This should replace the method defined in the object.
TestObject.prototype.testFunction = function() {
console.log("YOU GOT CHANGED");
}
var HelloWorld = new TestObject();
HellowWorld.testFunction(); // Should output "YOU GOT CHANGED"
</script>
实例方法通过原型链继承的影子方法
var HelloWorld = new TestObject();
HelloWorld.testFunction(); // finds method on instance
// "Original function output"
delete HelloWorld.testFunction; // delete method from instance
HelloWorld.testFunction(); // not found on instance, look in prototype, found
// "YOU GOT CHANGED"
不完全是这样,在构造函数中,你重写了原型。原始代码是原型的代码(在您创建对象时,在运行它之前,它被绑定)。
相关文章:
- 向对象添加新方法和值,同时避免重复
- 无法更新componentWillReceiveProps方法内的状态
- 什么'在javascript中将新方法添加到对象中的区别是什么
- 比较两个数组,并通过使用 javascript 保留现有对象来更新新值
- 在原型上声明新方法
- 编写 if 语句的新方法
- 当现有 Google 标记移动到另一个位置时,如何更新新的纬度和经度
- 如何在 DIV 中更新新图像
- 挖空 - 添加了可观察的不更新新对象
- 使用 ajax 从 php 文件中获取随机数不会更新新结果
- 使用原型将新方法添加到JScrollPane
- 异步添加/更新保存方法未更新
- 如何在响应和请求中添加新方法
- 为什么我可以更新 JavaScript 方法的(公共)成员
- ES5提供的新方法的实际用途是什么?
- 在javascript中的新方法中使用构造函数中的privat-var
- Twitter API,用于收听来自用户的更新/新推文
- 如何通过原型添加Nodelist/HtmlColaction新方法
- 如何在MVC4中使用CodeFirstApproach和ViewModel更新Delete方法
- Django提交表单->重定向到新页面->自动更新新页面