JavaScript的新手在这里。我有以下代码:JavaScript OOPS问题
function testObject(elem) {
this.test = "hi";
this.val = elem;
console.log(this.test+this.val);
echo();
function echo() {
console.log(this.test+this.val);
}
}
var obj = new testObject("hello");
当它运行时,我希望在控制台输出两次“hihello”。相反,它首次按预期输出,但第二次返回NaN。
我确定我在这里错过了一些东西。我认为内部功能可以访问外面的变量。有人能指导我吗?我更像是一个功能强大的UI开发人员,并且没有太多面向对象代码的经验。
谢谢!
我觉得我得到的想法。如果回声函数也带参数呢? echo(“sometext”)。call(this)似乎不起作用。 – 2010-08-03 20:17:59
@Newbie:你可以简单地在'call'的第一个参数之后传递它们,例如'echo.call(this,'arg1','arg2');' – CMS 2010-08-03 20:18:55
谢谢,这有效,但这也意味着我将不得不改变我的每个函数调用。任何方式我可以修改函数声明本身,使其工作?再次感谢! – 2010-08-03 20:25:05