2017-09-27 1 views
0

console.logの最終出力を本当に理解できません。JavaScriptを使用してクラスインスタンスごとにどのように理解できますか?

それは出力します - 未定義

constructor - ƒ Array() { [native code] } 
speak - undefined 
undefined 

1)なぜ話すのですか? 2)なぜ3番目の出力ラインがあるのですか?それはどこから得るのですか?

class Bar { 
 
    speak() { 
 
     let text = 'test'; 
 
     alert(text); 
 
     return text; 
 
    } 
 
} 
 
var test = new Bar; 
 

 
z = Object.getOwnPropertyNames(Object.getPrototypeOf(test)); 
 
console.log(typeof z, " - ", z); 
 

 
console.log(z.forEach(function(e) { console.log(e, " - ", z[e]); }));

助けてください。ありがとうございました!

+0

'z.forEach(function(e){console.log(e、" - "z [e]);})'は何も返しません価値があるので、あなたは 'undefined'を得ます –

答えて

1

test[e]の代わりにz[e]をチェックしています。 zはプロパティ名の配列で、speakプロパティを持つBarオブジェクトとは異なり、配列にはspeakプロパティがありません。

これは、speak - undefined行について説明しています。最後のスタンドアロンundefinedは、console.logの戻り値です。Chrome/Firefox console.log always appends a line saying undefined

+0

ありがとう!今私はそれを得た。まだ学んでいる... – dejavu2012

関連する問題