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