2014-11-21 5 views
0

나는 그것을 예상 할 수있는 수행이 함수를 만들 때 :내 자신의 자바 스크립트 수학 방법을 작동시키는 방법? 자바 스크립트에서

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

을하지만 이것이 어떻게 작동하는지는 변수를 사용하지 않고 작업, 내가 알아낼 수 없습니다 갖고 싶어.

나는이 코드 줄 때 그것이 작동되도록하고 싶습니다

:

document.write를 (Math.powown를 (3,6));

+2

이 경우 pow와 powown간에 차이가 없습니다. – nullpotent

답변

0

객체 Math부터 이미 예를 들어, Math 객체에 사용자 지정 기능을 추가 할 수 있습니다, 경우에 사용자 정의 기능을 추가 할, 당신이 직접 사용할 수 Math.pow() 있습니다

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

'Math.powown = Math.pow'는 적은 코드를 사용하여 같은 효과를 나타냅니다;) – pawel

+0

고마워요. 당신의 모범은 나를 위해 완벽하게 작동합니다. 불행히도 나는이 답변에 투표 할만한 평판이 없다. –

0

내가 무슨 생각을 이렇게하려고하면이

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

그래서 당신이 다음이

,691처럼 호출 할 수있다
(10).pow(5); 

또는이

10..pow(5); 

참고 : 당신은 늘 10.pow(5)에게 괄호 또는를 호출 할 수. (10)를 알 수있는 자바 스크립트에 필요한 것은 수

입니다

보너스 : 당신이이 같은 수의 프로토 타입에 수학의 모든 방법을 적용 할 수있는 정말 바보 얻을 싶어합니다.

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

그건 정확히 내가 만든 기능입니다. 그러나 그 외에도 당신은 함수를 호출하기위한 올바른 라인을주었습니다. 고마워. 그러나 더 나은 해결책이 제시됩니다. –

+0

DemoUser의 대답은 Math 개체의 pow 메서드를 복제하고 Pawel이 지적했듯이 정확히 Math.powown = Math.pow를 설정하는 것과 동일한 효과가 있습니다 –

관련 문제