2014-11-21 43 views
0

在javascript中,當我創建這個功能,它做什麼,可以預期:如何使我自己的JavaScript數學方法工作?

Number.prototype.powown = function(b) { 
    return Math.pow(this, b); 
} 
var a = 3; 
var b = 6; 
document.write(a.powown(b)); 

但我想擁有它,而無需使用的變量的工作,我無法弄清楚如何工作的。

我想就當我給這個代碼,它的工作:

文件撰寫(Math.powown(3,6));

+2

在這種情況下,pow和pow之間沒有區別。 – nullpotent 2014-11-21 11:05:14

回答

0

因爲Math對象已經有Math.pow(),你可以直接使用它,如果你想添加自定義功能,您可以添加自定義函數來Math對象,例如:

Math.powown = function() { 
    return Math.pow(arguments[0], arguments[1]); 
}; 
console.log(Math.powown(2,2)); //gives 4 
+3

'Math.powown = Math.pow'會使用較少的代碼具有相同的效果;) – pawel 2014-11-21 11:06:26

+0

非常感謝。你的例子適合我。不幸的是,我沒有15的聲望投票這個答案。 – 2014-11-21 12:32:57

0

我想你正在試圖做的是

Number.prototype.pow = function(a){ return Math.pow(this, a); } 

所以,你可以調用它像這樣

(10).pow(5); 

或本

10..pow(5); 

注: 你不會能夠調用10.pow(5)括號或。都需要JavaScript才能知道10號

獎勵: 如果你想獲得真正愚蠢的,你可以數學的所有方法適用於數這樣的原型。

Object.getOwnPropertyNames(Math).forEach(function(p){ 
    Number.prototype[p] = function(){ 
     return Math[p].apply(null, Array.prototype.concat.apply([this], arguments)); 
    } 
}); 
+0

這正是我創建的功能。但是另外你給了我正確的線路來調用這個函數。感謝那。但有一個更好看的解決方案。 – 2014-11-21 12:35:16

+0

DemoUser的答案重複了Math對象的pow方法,並且正如pawel指出的那樣,只是設置Math.powown = Math.pow – 2014-11-21 12:47:30

相關問題