私は時計と呼ばれるオブジェクトを持っています。
time と呼ばれるオブジェクトのメソッドがあります。
time メソッド内で this.propertyName を使用すると、時計オブジェクトにプロパティが与えられますよね? しかし、たとえば、プロパティの値を割り当てる前に実行する必要がある if/else ステートメント (time メソッド自体の内部) がある場合はどうなるでしょうか?
if(t.getHours() >= 12){
this.ap = "AM";
}else{
this.ap = "PM";
}
したがって、this.ap = "hi" のような単純な値を使用した場合、これは正常に機能します。それは私のオブジェクトにプロパティを与えます。上記のようなステートメントがある場合、プロパティは未定義です。これを回避する最善の方法は何ですか?
また、私は自分のオブジェクトを使い始めたばかりなので、別の簡単な質問です。3 つの個別のメソッドを持つオブジェクトがあり、1 つのメソッド内で宣言されているすべてのメソッドで値を使用したい場合、それをオブジェクトのプロパティとして割り当てると、これが可能になります。私は正しいですか?
したがって、あるメソッドで var property = "" を使用した場合、他のメソッドでこれにアクセスする唯一の方法は、それを返すことです。しかし、プロパティをオブジェクトに設定すると、これは解決しますか? これを試してみることができることはわかっていますが、適切な方法を知りたいだけです。
編集:これは例です。明らかに私は何かを誤解しています。メソッド内からプロパティを定義できないようです。
var clock = {};
clock.test1 = "test 1.";
clock.time = function(){
clock.test = "test 2.";
if(t.getHours() >= 12){
clock.ap = "PM";
}else{
clock.ap = "AM";
}
}
alert(clock.test1); //success
alert(clock.test); //returns undefined
alert(clock.ap); //returns undefined