UTF-8に単純変換
This commit is contained in:
@@ -5,121 +5,121 @@
|
||||
<!-- generated by to_html.pl from property.xml -->
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" />
|
||||
<title>�v���p�e�B</title>
|
||||
<title>プロパティ</title>
|
||||
<meta name="author" content="W.Dee" />
|
||||
<meta http-equiv="Content-Style-Type" content="text/css" />
|
||||
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
||||
<link href="browser.css" type="text/css" rel="stylesheet" title="�g���g���֘A���t�@�����X�p�W���X�^�C��" />
|
||||
<link href="browser.css" type="text/css" rel="stylesheet" title="吉里吉里関連リファレンス用標準スタイル" />
|
||||
<link href="mailto:[email protected]" rev="Made" />
|
||||
<link href="index.html" target="_top" rel="Start" title="�g�b�v�y�[�W" />
|
||||
<link href="index.html" target="_top" rel="Start" title="トップページ" />
|
||||
</head>
|
||||
<body>
|
||||
<h1><a id="id279" name="id279">�v���p�e�B</a>
|
||||
<h1><a id="id279" name="id279">プロパティ</a>
|
||||
</h1><div class="para"><div>
|
||||
�@�v���p�e�B�Ƃ́A�ϐ��Ɠ����悤�Ɉ������Ƃ��ł��邪�A���ۂ̓��\�b�h�Ăяo���Ɠ��l�ɁA<a id="id280" name="id280" class="targanchor"><dfn>�Z�b�^�[</dfn></a> ( <a id="id281" name="id281" class="targanchor"><dfn>setter</dfn></a> ) ��<a id="id282" name="id282" class="targanchor"><dfn>�Q�b�^�[</dfn></a> ( <a id="id283" name="id283" class="targanchor"><dfn>getter</dfn></a> ) �̌Ăяo�������̂ł��B�Z�b�^�[���Q�b�^�[���A�v���p�e�B�n���h���ƌĂԏꍇ�������܂��B<br />
|
||||
プロパティとは、変数と同じように扱うことができるが、実際はメソッド呼び出しと同様に、<a id="id280" name="id280" class="targanchor"><dfn>セッター</dfn></a> ( <a id="id281" name="id281" class="targanchor"><dfn>setter</dfn></a> ) と<a id="id282" name="id282" class="targanchor"><dfn>ゲッター</dfn></a> ( <a id="id283" name="id283" class="targanchor"><dfn>getter</dfn></a> ) の呼び出しを伴うものです。セッターやゲッターを、プロパティハンドラと呼ぶ場合があります。<br />
|
||||
<br />
|
||||
�@�\���͈ȉ��̒ʂ��ł��B<br />
|
||||
構文は以下の通りです。<br />
|
||||
|
||||
<br />
|
||||
<code class="bq"><a id="id284" name="id284" class="targanchor"><dfn>property</dfn></a> ���ʎq<br />
|
||||
<code class="bq"><a id="id284" name="id284" class="targanchor"><dfn>property</dfn></a> 識別子<br />
|
||||
{<br />
|
||||
setter(����)<br />
|
||||
setter(引数)<br />
|
||||
{<br />
|
||||
<span class="comment">// �����ɃZ�b�^�[�̓��e</span><br />
|
||||
<span class="comment">// ここにセッターの内容</span><br />
|
||||
}<br />
|
||||
<br />
|
||||
getter()<br />
|
||||
{<br />
|
||||
<span class="comment">// �����ɃQ�b�^�[�̓��e</span><br />
|
||||
return ��; <span class="comment">// �Q�b�^�[�Ƃ��ĕԂ��l</span><br />
|
||||
<span class="comment">// ここにゲッターの内容</span><br />
|
||||
return 式; <span class="comment">// ゲッターとして返す値</span><br />
|
||||
}<br />
|
||||
}<br />
|
||||
</code>
|
||||
<br />
|
||||
|
||||
�@setter �� getter �́A�t�̏��Ԃŏ������Ă��Ă����܂��܂����B <br />
|
||||
�@���� property ���L�q�����N���X���A�O���[�o���̃����o�Ƃ��Ă��̃v���p�e�B�͓o�^�����܂����A���̎��ʎq�����̒l�̎擾�̓Q�b�^�[�A�l�̐ݒ��̓Z�b�^�[���ʂ��čs�����܂��B�������̃Z�b�^�[�ƃQ�b�^�[�́A���\�b�h���l�ɗl�X�ȓ��e���������Ƃ��ł��܂��B�Z�b�^�[�� setter �ɑ��� ( ) ���ɁA�l�������ϐ��������Ƃ��ď����܂��B�Q�b�^�[�� <a id="id285" name="id285" class="targanchor"><dfn>return</dfn></a> �X�e�[�g�����g�ɂĒl���Ԃ��܂��B<br />
|
||||
setter と getter は、逆の順番で書かれていてもかまいません。 <br />
|
||||
この property を記述したクラスや、グローバルのメンバとしてこのプロパティは登録されますが、この識別子からの値の取得はゲッター、値の設定はセッターを通して行われます。これらのセッターとゲッターは、メソッド同様に様々な内容を書くことができます。セッターは setter に続く ( ) 内に、値を受け取る変数を引数として書きます。ゲッターは <a id="id285" name="id285" class="targanchor"><dfn>return</dfn></a> ステートメントにて値を返します。<br />
|
||||
<br />
|
||||
�@getter�̂��Ƃ� () �͏ȗ��ł��܂��B <br />
|
||||
getterのあとの () は省略できます。 <br />
|
||||
<br />
|
||||
�@���̎��ʎq�ɑ��A�Z�b�^�[�ƃQ�b�^�[�̗����������A�ǂݏ����̗������\�ȃv���p�e�B�ɂȂ��܂��B�������������Ȃ��ꍇ�A���Ƃ��Q�b�^�[���������Ȃ��ꍇ�́A�ǂݏo�����p�̃v���p�e�B�ƂȂ��A�������݂̓G���[�ɂȂ��܂��B<br />
|
||||
一つの識別子に対し、セッターとゲッターの両方を書けば、読み書きの両方が可能なプロパティになります。一方しか書かない場合、たとえばゲッターしか書かない場合は、読み出し専用のプロパティとなり、書き込みはエラーになります。<br />
|
||||
|
||||
<br />
|
||||
<code class="bq"><span class="weak">��:</span><br /> var value;<br />
|
||||
<code class="bq"><span class="weak">例:</span><br /> var value;<br />
|
||||
<br />
|
||||
property property1 <span class="comment">// �v���p�e�B 'property1' ���錾</span><br />
|
||||
property property1 <span class="comment">// プロパティ 'property1' を宣言</span><br />
|
||||
{<br />
|
||||
setter(v)<br />
|
||||
{<br />
|
||||
<span class="comment">// �Z�b�^�[�͂����������̈������Ƃ�</span><br />
|
||||
value=v; <span class="comment">// ���� v ����������</span><br />
|
||||
<span class="comment">// セッターはただ一つだけの引数をとる</span><br />
|
||||
value=v; <span class="comment">// 引数 v を処理する</span><br />
|
||||
<br />
|
||||
inform("value set.");<br />
|
||||
}<br />
|
||||
<br />
|
||||
getter<br />
|
||||
{<br />
|
||||
<span class="comment">// propset �Ɠ������ʎq 'property1' �̃Q�b�^�[���錾</span><br />
|
||||
<span class="comment">// �Q�b�^�[�Ɉ����͂Ȃ�</span><br />
|
||||
<span class="comment">// propset と同じ識別子 'property1' のゲッターを宣言</span><br />
|
||||
<span class="comment">// ゲッターに引数はない</span><br />
|
||||
inform("value get.");<br />
|
||||
return value; <span class="comment">// �߂��l�Ƃ��ĕԂ�</span><br />
|
||||
return value; <span class="comment">// 戻り値として返す</span><br />
|
||||
}<br />
|
||||
}<br />
|
||||
<br />
|
||||
property1=5; <span class="comment">// property1 �ւ̑����́A�Z�b�^�[���Ă���</span><br />
|
||||
property1++; <span class="comment">// ���̂悤�Ȏ��ł́A�Q�b�^�[���Ă��A</span><br />
|
||||
<span class="comment">// ���ɃZ�b�^�[���Ă��Ēl���ݒ肳����</span><br />
|
||||
property1=5; <span class="comment">// property1 への代入は、セッターが呼ばれる</span><br />
|
||||
property1++; <span class="comment">// このような式では、ゲッターが呼ばれ、</span><br />
|
||||
<span class="comment">// 次にセッターが呼ばれて値が設定される</span><br />
|
||||
}<br />
|
||||
</code>
|
||||
<br />
|
||||
|
||||
�@�v���p�e�B���ϐ��������N���X���l�A<a id="id286" name="id286" class="targanchor"><dfn>�I�[�o�[���C�h</dfn></a>�ł��܂��B<br />
|
||||
プロパティも変数や関数やクラス同様、<a id="id286" name="id286" class="targanchor"><dfn>オーバーライド</dfn></a>できます。<br />
|
||||
</div></div>
|
||||
<h1><a id="id287" name="id287">�v���p�e�B�I�u�W�F�N�g</a>
|
||||
<h1><a id="id287" name="id287">プロパティオブジェクト</a>
|
||||
</h1><div class="para"><div>
|
||||
�@�v���p�e�B���g�����̃I�u�W�F�N�g�ł��B�������A�Ȃ��炩�̃I�u�W�F�N�g�ɓo�^�����Ă����ꍇ�́A���ʂ̃A�N�Z�X���@�ł̓v���p�e�B�n���h�����Ă��邾���ł����A�v���p�e�B�I�u�W�F�N�g���̂��̂ɂ̓A�N�Z�X�ł��܂����B<br />
|
||||
�@�v���p�e�B�I�u�W�F�N�g���̂��̂������o���ɂ� <code class="inlinecode"><a id="id288" name="id288" class="targanchor"><dfn>&</dfn></a></code> ���Z�q���g���܂��B�����o�����v���p�e�B�I�u�W�F�N�g�̓��[�J���ϐ��ɓ����邱�Ƃ��o���܂��B<br />
|
||||
�@�܂��A<code class="inlinecode">&</code> ���Z�q���g���ăv���p�e�B�I�u�W�F�N�g���o�^���邱�Ƃ��ł��܂��B<br />
|
||||
プロパティ自身も一つのオブジェクトです。しかし、なんらかのオブジェクトに登録されている場合は、普通のアクセス方法ではプロパティハンドラが呼ばれるだけであり、プロパティオブジェクトそのものにはアクセスできません。<br />
|
||||
プロパティオブジェクトそのものを取り出すには <code class="inlinecode"><a id="id288" name="id288" class="targanchor"><dfn>&</dfn></a></code> 演算子を使います。取り出したプロパティオブジェクトはローカル変数に入れることが出来ます。<br />
|
||||
また、<code class="inlinecode">&</code> 演算子を使ってプロパティオブジェクトを登録することもできます。<br />
|
||||
|
||||
<br />
|
||||
<code class="bq"><span class="weak">��:</span><br /> property prop <span class="comment">// �v���p�e�B prop ���錾</span><br />
|
||||
<code class="bq"><span class="weak">例:</span><br /> property prop <span class="comment">// プロパティ prop を宣言</span><br />
|
||||
{<br />
|
||||
(��)<br />
|
||||
(略)<br />
|
||||
}<br />
|
||||
<br />
|
||||
{<br />
|
||||
var p = &prop; <span class="comment">// �v���p�e�B�I�u�W�F�N�g�ă��[�J���ϐ��ɓ�����</span><br />
|
||||
var p = &prop; <span class="comment">// プロパティオブジェクトを得てローカル変数に入れる</span><br />
|
||||
<br />
|
||||
&object.property1 = p; <span class="comment">// p �� object �� property1 �Ƃ��ēo�^����</span><br />
|
||||
&object.property1 = p; <span class="comment">// p を object の property1 として登録する</span><br />
|
||||
}<br />
|
||||
</code>
|
||||
<br />
|
||||
|
||||
<br />
|
||||
�@<code class="inlinecode">&</code> ���Z�q���g���ƁA�Q�b�^�[���Z�b�^�[�͌Ăꂸ�Ƀv���p�e�B�I�u�W�F�N�g���̂��̂ɃA�N�Z�X���鎖���ł��܂��B<code class="inlinecode">&</code> ���Z�q���g���Ȃ����Βʏ��̃v���p�e�B�ւ̃A�N�Z�X�ƂȂ��܂��B<br />
|
||||
<code class="inlinecode">&</code> 演算子を使うと、ゲッターやセッターは呼ばれずにプロパティオブジェクトそのものにアクセスする事ができます。<code class="inlinecode">&</code> 演算子を使わなければ通常のプロパティへのアクセスとなります。<br />
|
||||
<br />
|
||||
�@���[�J���ϐ��Ƃ��Ď����o�����v���p�e�B�I�u�W�F�N�g�́A�I�u�W�F�N�g�ɓo�^���Ȃ��Ƃ��A<code class="inlinecode"><a id="id289" name="id289" class="targanchor"><dfn>*</dfn></a></code> ���Z�q���p���ăv���p�e�B�n���h�����Ăяo�����Ƃ��ł��܂��B<br />
|
||||
ローカル変数として取り出したプロパティオブジェクトは、オブジェクトに登録しなくとも、<code class="inlinecode"><a id="id289" name="id289" class="targanchor"><dfn>*</dfn></a></code> 演算子を用いてプロパティハンドラを呼び出すことができます。<br />
|
||||
<br />
|
||||
|
||||
<br />
|
||||
<code class="bq"><span class="weak">��:</span><br /> property prop <span class="comment">// �v���p�e�B prop ���錾</span><br />
|
||||
<code class="bq"><span class="weak">例:</span><br /> property prop <span class="comment">// プロパティ prop を宣言</span><br />
|
||||
{<br />
|
||||
(��)<br />
|
||||
(略)<br />
|
||||
}<br />
|
||||
<br />
|
||||
{<br />
|
||||
var p = &prop; <span class="comment">// �v���p�e�B�I�u�W�F�N�g�ă��[�J���ϐ��ɓ�����</span><br />
|
||||
var p = &prop; <span class="comment">// プロパティオブジェクトを得てローカル変数に入れる</span><br />
|
||||
<br />
|
||||
*p = 30; <span class="comment">// setter ���Ăяo�� 30 ���ݒ肷��</span><br />
|
||||
func(*p); <span class="comment">// getter ���Ăяo���l���擾���Afunc �ɓn��</span><br />
|
||||
*p = 30; <span class="comment">// setter を呼び出し 30 を設定する</span><br />
|
||||
func(*p); <span class="comment">// getter を呼び出し値を取得し、func に渡す</span><br />
|
||||
}<br />
|
||||
</code>
|
||||
<br />
|
||||
|
||||
<br /><div class="note"><div class="notehead"><span class="noteheadspan">Note</span></div>
|
||||
���L�̂悤�� var �ϐ��Ƀv���p�e�B�I�u�W�F�N�g���Ƃ��ꍇ�́A�ϐ��̓��[�J���ϐ��ɂ��Ă��������B�����́A�v���p�e�B�I�u�W�F�N�g�͂��������I�u�W�F�N�g�ɓo�^�������ƁA�v���p�e�B�I�u�W�F�N�g�Ƃ��Ăł͂Ȃ��v���p�e�B�Ƃ��ăQ�b�^�[���Z�b�^�[����������������悤�ɂȂ邽�߂ł��B�܂��A���[�J���ϐ��ł͂Ȃ��A�O���[�o���ϐ�(��global�̃����o)���I�u�W�F�N�g�̃����o�Ƀv���p�e�B�I�u�W�F�N�g���o�^���Ă��܂��ƁA���ʂ̃v���p�e�B�Ɠ����悤�ɐU�镑���悤�ɂȂ��܂��B�������̂悤�ɂ��ăO���[�o���ϐ����I�u�W�F�N�g�̃����o�ɓo�^�����v���p�e�B�I�u�W�F�N�g�������o�����߂� & ���Z�q���g���̂͂��܂��܂����B</div><br />
|
||||
上記のように var 変数にプロパティオブジェクトをとる場合は、変数はローカル変数にしてください。これは、プロパティオブジェクトはいったんオブジェクトに登録されると、プロパティオブジェクトとしてではなくプロパティとしてゲッターやセッターを介した動作をするようになるためです。つまり、ローカル変数ではなく、グローバル変数(=globalのメンバ)やオブジェクトのメンバにプロパティオブジェクトを登録してしまうと、普通のプロパティと同じように振る舞うようになります。もちろんこのようにしてグローバル変数やオブジェクトのメンバに登録したプロパティオブジェクトを取り出すために & 演算子を使うのはかまいません。</div><br />
|
||||
<br />
|
||||
�v���p�e�B�I�u�W�F�N�g�ɑ��� instanceof ���Z�q�� "Property" ���Ďg�p�����ꍇ�͐^�ɂȂ��܂�(���L�̗��Ō����ƁA&prop instanceof "Property" �͐^)�B<br />
|
||||
プロパティオブジェクトに対して instanceof 演算子を "Property" を伴って使用した場合は真になります(上記の例で言うと、&prop instanceof "Property" は真)。<br />
|
||||
</div></div>
|
||||
<script type="text/javascript" charset="Shift_JIS" src="documentid.js" ></script>
|
||||
<script type="text/javascript" charset="Shift_JIS" src="postcontent.js" ></script>
|
||||
|
||||
Reference in New Issue
Block a user