> 웹 프론트엔드 > JS 튜토리얼 > JavaScript 산술 표현식 계산기의 코드 구현

JavaScript 산술 표현식 계산기의 코드 구현

黄舟
풀어 주다: 2017-03-18 14:53:51
원래의
1559명이 탐색했습니다.

첫 번째 단계는 createOperator 함수를 구현하고 클로저 함수를 반환하는 것입니다:

var Add = createOperator("+" , function(a,b){return a + b;});
var Minus = createOperator("-" , function(a,b){return a - b;});
var Mul = createOperator("*" , function(a,b){return a * b;});
var pide = createOperator("/" , function(a,b){return a / b;});
로그인 후 복사

1 클로저 함수의 인스턴스에는 두 개의 eval과 toString<🎜이 있습니다. > 메소드

2. eval 메소드는 산술

표현식

의 값을 계산하는 역할을 담당합니다. 3. toString 메소드는 <의 형식으로 표현식 계산 프로세스를 사용합니다. 🎜> 문자열

표시4. 적용 범위는 바이너리

연산자

로 제한됩니다. 연산 중 값은 다음과 같은 형식으로 저장됩니다. 값

function Value(value){
    this.value = value || 0;
}

Value.prototype.toString = function(){ 
	return this.value.toString(); 
};
로그인 후 복사

createOperator 함수 코드 구현:

//IIFE
var createOperator = (function() {
	//name:"+","-","*","/"
	//oper:对应的加减乘除函数
    return function(name, oper){
		//闭包函数
        var Foo = function(){
			//获取2个操作数
            var args = arguments;
            var nums = [].slice.call(arguments);
            nums = nums.map(function(e){return e.value;});          
            var val = new Value(oper.apply(null,nums));
			//给实例绑定toString和eval方法
            val.toString = function(){
                return args[0].toString() + " " + name + " " + args[1].toString();
            };
			val.eval = function(){
                return this.value;
            };
            return val;
        };  
        return Foo;
    }; 
})();
로그인 후 복사

위 내용은 JavaScript 산술 표현식 계산기의 코드 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿