????????????????JavaScript????????????
?????ChokCoco ???????[ 2017/3/10 15:20:37 ] ???????????? Javascript
?????????????????????????? test ?????????′??????飬????????????е?????????? valueOf ??????
	
	?????????д??? test ?????? valueOf ??????
	????test.valueOf = function() {
	????console.log('???? valueOf ????');
	????return 2;
	????}
	????test;
	????// ??????£?
	????// ???? valueOf ????
	????// 2
	?????? Number ????????????????? valueOf ?????????????????????????????????? toString ??????
	????test.valueOf = function() {
	????console.log('???? valueOf ????');
	????return {};
	????}
	????test.toString= function() {
	????console.log('???? toString ????');
	????return 3;
	????}
	????test;
	????// ??????£?
	????// ???? valueOf ????
	????// ???? toString ????
	????// 3
	????????
	???????????????????????????????????????????е??? valueOf ????????????????д??÷???????????????????????£?
	functionadd(){
	console.log('????add');
	varargs=Array.prototype.slice.call(arguments);
	varfn=function(){
	vararg_fn=Array.prototype.slice.call(arguments);
	console.log('????fn');
	returnadd.apply(null??args.concat(arg_fn));
	}
	fn.valueOf=function(){
	console.log('????valueOf');
	returnargs.reduce(function(a??b){
	returna+b;
	})
	}
	returnfn;
	}
	????????????? add ??????????????? fn ??? function????????????? fn.valueOf();
	????add(1);
	????// ??????£?
	????// ????add
	????// ????valueOf
	????// 1
	???????????????
	????[1].reduce(function(a?? b) {
	????return a + b;
	????})
	????// 1
	????????????????ε????
	????add(1)(2);
	????// ??????£?
	????// ????add
	????// ????fn
	????// ????add
	????// ????valueOf
	????// 3
	????????????????ε????
	????add(1)(2)(3);
	????// ??????£?
	????// ????add
	????// ????fn
	????// ????add
	????// ????fn
	????// ????add
	????// ????valueOf
	????// 6
	????????????????????????????????к???ε??ò?????????? valueOf????????????????????????????????????????ε??÷????????? fn ?????????????????????? fn.valueOf???????????? reduce ?????????в???????
	?????????д valueOf ????????????д toString ???????????????????????????????????
	function add () {
	var args = Array.prototype.slice.call(arguments);
	var fn = function () {
	var arg_fn = Array.prototype.slice.call(arguments);
	return add.apply(null?? args.concat(arg_fn));
	}
	fn.toString = function() {
	return args.reduce(function(a?? b) {
	return a + b;
	})
	}
	return fn;
	}
	?????????и????????????д valueOf() ???? toString() ?????????????????????д?????????????????????д??????? Number ?????????????????????? valueOf() ???????? valueOf() ???????????????????????????? toString() ??????
	???????
	????????????????????“?????????????д????????????????”??????????????????????????????????????????????????????????????????????????????????£????????????????????????????????????????????
	????????????????????????? ECMAScript ?淶?????????????????????????????????к???????????????????????????
	???????
??????
					
					???·???
App??С????H5?????????????????Щ??
2024/9/11 15:34:34?????????????????????????
2024/9/10 11:13:49P-One ???????????????????????????????????????
2024/9/10 10:14:12???????????????????????????
2024/9/9 18:04:26??????????????????
2023/3/23 14:23:39???д?ò??????????
2023/3/22 16:17:39????????????????????Щ??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44
					
			
								
								
								
								
								
								
								
								
								
								
				
sales@spasvo.com