簡體   English   中英

console.log不會打印未定義嗎?

[英]console.log does not print undefined?

我是Java語言的新手。 我試圖通過使用不同的示例來了解“ this”在哪里。 我正在使用console.log打印一些值,如下所示。

function FuncObject(value) { 
    this.answer = value;
    this.get_answer = function () { 
       return this.answer;
    }
};

var f = new FuncObject(42);

var fanswer = f.get_answer;
console.log(fanswer())

console.log打印“功能”而不是“未定義”。 document.writeln似乎打印“ undefined”,這是正確的,因為它綁定到沒有答案的窗口對象。 現在打印功能使我感到困惑。 現在我想知道我應該使用什么日志記錄。 我找不到對此的解釋。

謝謝莫漢

萬一您沒注意到,您發布的代碼中有一個錯字
this.get_answer = funcition()

考慮到這一點,我不確定您的經驗水平,因此讓我涵蓋所有基礎。

function FuncObject(value) { 
   this.answer = value; 
   this.get_answer = function () { 
     return this.answer; 
   } 
};

var f = new FuncObject(42);

var fanswer = f.get_answer;
console.log(fanswer())

你設置fanswer = f.get_answer其中f.get_answer是一個函數,所以因此它設置fanswer功能相當於this.get_answer

如果要返回f.get_answer的返回值, f.get_answer需要調用f.get_answer() ,它返回42。

使用您輸入的內容, console.log(fanswer()) 確實按預期打印出未定義的內容
如果您只是簡單地進行console.log(fanswer)它將記錄為function ,也符合預期。

我不確定為什么您會收到問題中提到的功能 ,因為jsbin絕對不會。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM