JavaScript原型委托功能
这个问题在这里已经有了答案:
你有一个构造函数,它的原型中有m
。
var func = function (){};
func.prototype = {m:9};
console.log( func.prototype.m ); // That logs 9
原型不是分配给函数本身,而是分配给由此函数创建的实例:
var f = new func();
console.log( f.m ); // That also logs 9
这是你的m
是。
为此还记录9
func.m
你必须在Function.prototype
有m
,因为func
的原型是Function
Function.prototype.m = 9;
console.log( func.m ); // Logs 9
通过做func.prototype = {m:9};
,你正在将你的func
变量的'prototype'属性设置为{m:9}
。
当你调用func.m
,你尝试访问你以前从未设置过的func
变量的'm'属性。
相反,您先前设置了对象func.prototype
的'm'属性。
如果你想从你的变量func
设置属性'm',只需做func.m = 9;