Javascript原型的问题
我正在努力使用JavaScript。只有在调用另一个函数中的init函数时,我才能使folling代码正常工作。如果我在timeout函数之外调用this.init()或this.init(),则它不起作用Javascript原型的问题,javascript,function,scope,Javascript,Function,Scope,我正在努力使用JavaScript。只有在调用另一个函数中的init函数时,我才能使folling代码正常工作。如果我在timeout函数之外调用this.init()或this.init(),则它不起作用 var App = function() { var that = this; // Workaround var timeout = setTimeout(function(){ that.init();
var App = function() {
var that = this;
// Workaround
var timeout = setTimeout(function(){
that.init();
},1);
};
var app = new App();
App.prototype.init = function() {
console.log('works');
};
谢谢你的帮助
干杯。在实例化应用程序后,您正在分配原型。先做吧
var App = function() {
this.init();
};
App.prototype.init = function() {
console.log('works');
};
var app = new App();
在实例化应用程序后,您将分配原型。先做吧
var App = function() {
this.init();
};
App.prototype.init = function() {
console.log('works');
};
var app = new App();
在定义init之前不能调用它为什么在将init分配给原型之前要创建实例?在setTimeout()的情况下,它可以工作,因为您的脚本在意识到它不存在之前执行并读取新的prototype.init。您能解释一下吗?谢谢。因为您有一个构造函数,所以不需要
init
方法来完成构造函数的工作。我希望您的实际代码只是使用原型中的一些常用方法,并在构造函数中进行初始化。在定义init之前不能调用它。为什么在将init分配给原型之前要创建实例?在setTimeout()的情况下,它之所以有效,是因为您的脚本在意识到它不存在之前执行并读取了新的prototype.init。您能解释一下吗?谢谢。因为您有一个构造函数,所以不需要init
方法来完成构造函数的工作。我希望您的实际代码只是使用原型中的一些常用方法,并在构造函数中进行初始化。