实现two(add(one())) one(add(two()))的结果是3

第一种:

function  two(value) {
    
    
	if (!value) {
    
    
		return 1;
	} else {
    
    
		return 1+ value;
	}
}
function  add(value) {
    
    
	if (!value) {
    
    
		return 1;
	} else {
    
    
		return 1+ value;
	}
}
function  one(value) {
    
    
	if (!value) {
    
    
		return 1;
	} else {
    
    
		return 1+ value;
	}
}

也是一种实现办法,但肯定不是最优的解决办法。

第二种

function one(fn) {
    
    
     let obj = {
    
    
         value: 1
      }
      if (fun) {
    
    
         return fn.apply(obj)
      } else {
    
    
         return obj.value
      }
   }
  function two(fun) {
    
    
       let obj = {
    
    
           value: 2
       }
       if (fun) {
    
    
           return fun.apply(obj)
       } else {
    
    
          return obj.value
       }  
   }
   function add(num) {
    
    
      return function () {
    
    
         return this.value + num
      }
   }

猜你喜欢

转载自blog.csdn.net/weixin_44244924/article/details/129889122