(function(){
test();
}());
function Class(){
this.prop = 'hi';
}
Class.prototype.mod = function(num){this.prop = num;}
function test(){
var c = new Class();
c.mod('now'); // it'll say it's not a function
alert(c.prop); // it's work
}
我想将函数和类移出到ready函数以使代码清理并节省内存,但我发现类方法不起作用。
如果我将原型移动到测试功能,它就像
一样工作(function(){
test();
}());
function Class(){
this.prop = 'hi';
}
function test(){
Class.prototype.mod = function(num){this.prop = num;}
var c = new Class();
c.mod('now'); // it's ok
alert(c.prop);
}
为什么我必须将原型方法移动到测试或准备好功能?
答案 0 :(得分:2)
因为您的.prototype.mod
定义是之后调用它的函数。提升仅对函数定义本身有帮助(这就是new Class()
正常工作的原因),而不是原型定义。
这真的不应该那么难:首先准备你的工具,然后使用它们。