当我执行以下java脚本代码时,我在" v.dummy();"请告诉我,我在哪里做错了。
function Test()
{
}
Test.prototype.foo = function () {
console.log('foo');
}
var v = new Test();
v.foo();
v.__proto__ = function dummy() {
console.log('__proto__');
};
v.dummy(); // Uncaught TypeError: v.dummy is not a function
答案 0 :(得分:1)
__proto__
只是对象的引用
你不能使它等于一个新功能,但你可以这样做:
v.__proto__.foo = function dummy(){}
答案 1 :(得分:0)
我不知道你要做什么,但是:
1)当您为变量分配函数时,您可以省略名称(dummy
)并使用匿名函数(没有名称)。在这种情况下,函数名称是无用的。
如果你这样做
var x = function y(){ ... }
你可以这样称呼它:x()
,而不是 y()
2)__proto__
应该是一个对象,而不是一个函数
foo
的使用是正确的,因此可行。
你可能想考虑阅读一本好的JS书。