2016-05-15 2 views
0

これは基本的なものかもしれませんが、私は完全に誤解しているかもしれませんが、Object.prototypeを使ってオブジェクトにメソッドを追加する方法を理解しようとする初心者です。'this'を使ったObject.prototype

私の質問を説明するための最良の方法は、まず次のことを示して表示することです:

Object.prototype.printHTML = function() { 
    alert(this.innerHTML); 
}; 

thisは=は、サインインした後(正確に何であるのHTMLを警告Object.prototype.printHTMLを単に指すように思われます。私の質問はである上記

は、あなたが使用するオブジェクトを直接参照することができます

ので、下記の「テスト段落」を警告する:?

<body> 
<p id='test'>Test Paragraph</p> 

<script> 
Object.prototype.printHTML = function() { 
    alert(this.innerHTML); 
}; 

document.getElementById("test").printHTML; //this would alert "Test Paragraph" 
//currently alerts "function() {alert(this.innerHTML);} 
</script> 
</body> 

私は、この例では無意味であることを理解(document.getElementById("test").innerHTML;が、私はこのために必要となる、まさに私を与えるので)が、私はただのObject.prototypeを使用してメソッドを作成し理解しようとしていますし、私は、オブジェクトにアクセスする方法を見つけ出すことはできませんメソッドが実行されています。

おかげ

+0

単純に、 'document.getElementById(" test ").printHTML'を' document.getElementById( "test")に変更してください。printHTML() ' –

+0

@CallumLiningtonありがとう、私の初心者です! – Mike

+0

もし私が手伝ったら答えを受け入れてください:) –

答えて

2

あなたが代わりにあなたがむしろプロパティと関数としてprintHTMLにアクセスし、それを実行していたこの

<body> 
<p id='test'>Test Paragraph</p> 

<script> 
Object.prototype.printHTML = function() { 
    alert(this.innerHTML); 
}; 

document.getElementById("test").printHTML(); //<--- HERE WE ADD THE PARENTHESIS 
//currently alerts "function() {alert(this.innerHTML);} 
</script> 
</body> 

を行い、実際に近くにあります。それでなぜあなたはテキストとしての機能を持っているのですか?

関連する問題