Javascript原型赢得';不要更新方法
我正在学习使用javascript的Javascript原型赢得';不要更新方法,javascript,oop,prototype,Javascript,Oop,Prototype,我正在学习使用javascript的prototype特性(而不是库)。我想我可以用MyObject.prototype.myFunction=function(){…}替换对象的方法。显然这不起作用 下面的代码定义了一个对象,并使用prototype替换其函数。在浏览器中运行它,控制台仍然显示原始输出 <script type="text/javascript"> function TestObject() { this.testFu
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>
函数TestObject(){
this.testFunction=function(){
console.log(“原始功能输出”);
}
}
//这将替换对象中定义的方法。
TestObject.prototype.testFunction=函数(){
log(“你被改变了”);
}
var HelloWorld=newtestobject();
HellowWorld.testFunction();//是否应输出“您已被更改”
实际上,在构造函数中,您正在重写原型。原始代码是原型的代码(在运行对象之前,一旦创建对象,它就会被绑定)。实际上,在构造函数中,您正在重写原型。原始代码是原型的代码(在运行对象之前,只要创建对象,它就会被绑定)。实例方法通过原型链继承的阴影方法
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"
实例方法通过原型链继承的阴影方法
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"
实例方法隐藏了任何原型方法。实例方法隐藏了任何原型方法。当你说“它被绑定”时,你指的是什么?当你说“它被绑定”时,你指的是什么?