我想設置一個JavaScript對象,其中的一個項目是一個函數。我正在做一些自我引用,但它不起作用。自引用對象在JavaScript函數中如何工作?
var onTimePoints = function($a, $b, $c, $lifeotr){
$var1 = ($b - $a)/$c;
$var2 = ($lifeotr - $a)/$var1;
if($var2>$c)
{
$var2 = $c;
}
if($var2<0)
{
$var2 = 0;
}
$var2 = Math.round($var2);
return $var2;
}
var lifeData ={
min: 25000,
max: 65000,
otr: 56426,
maxPoints:100,
otp: onTimePoints(25000, 65000, 100, 56426),
test: function(){
alert(this.min);
}
}
當我做conosle.log(lifeData.otp)
它的作品。
當我用this.min
,this.max
等替換硬編碼的數字時,它不起作用。
這裏是什麼行不通的例子:
var lifeData ={
min: 25000,
max: 65000,
otr: 56426,
maxPoints:100,
otp: onTimePoints(this.min, this.max, this.maxPoints, this.otr),
test: function(){
alert(this.min);
}
}
在這種情況下console.log(lifeData.otp)
回報NaN
。
我相信我只是俯視一些東西。欣賞如果你知道這個問題。
我刪除了原來的意見,但後來我意識到,我是正確的:-)值'this'並沒有任何關係做一個在建的對象字面值。它只能完成函數調用上下文。基本上沒有直接的方法來做你在JavaScript中做的事情。你必須使用一個單獨的聲明。 – Pointy
當我警告this.min它警告25000.我假設this.min是一樣的說lifeData.min –
'this'是'window',而不是'lifeData'。 – jbabey