我对我正在处理的一段javascript代码提出了疑问。在stackoverflow的另一个问题中,我已经读过你可以在一个对象内的method2中执行this.method1。但是,当这样做'this'指向当前窗口对象时,无法找到method1(自然)。
请告诉我如何最好地解决这个问题。
我得到的错误是:
TypeError: this.initFB is not a function
this.initFB();
代码:
var FPPL = {
/** Variables */
larvaunched : false,
/**
*
*/
initFB : function(){
if ((typeof(FB)!= 'undefined')) {
FB.init({
xfbml: true,
status : true, // check login status
cookie : true // enable cookies to allow the server to access the session
});
}
},
initCode : function(){
console.log(this);
this.initFB();
if (!this.checkForLaunch())
return false;
window.setTimeout(this.showFaceBox, lb_l_ret.delay);
}
....
}
window.fbAsyncInit = FPPL.initCode;
答案 0 :(得分:3)
您可以将this.initFB();
更改为FPPL.initFB();
,以使此脚本生效。 this
与函数相关,您创建了一个对象(即FPPL
)。
如果您想在代码中使用this
,我会选择https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/new示例:
function Car(make, model, year) {
this.make = make;
this.model = model;
this.year = year;
}
Car.prototype.doSomething = function () {
// you can use this here
};
var mycar = new Car("Eagle", "Talon TSi", 1993);