我有一个叫做时钟的对象。
我有一个称为时间的对象的方法。
如果我在 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