ES 6用Proxy进行预处理声明周期. 与promise对象的使用--回调函数

get属性

get属性是在你得到某对象属性值时预处理的方法,他接受三个参数

  • target:得到的目标值
  • key:目标的key值,相当于对象的属性
  • property:这个不太常用,用法还在研究中,还请大神指教。

set属性

set属性是值你要改变Proxy属性值时,进行的预先处理。它接收四个参数。

  • target:目标值。
  • key:目标的Key值。
  • value:要改变的值。
  • receiver:改变前的原始值。
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>用Proxy进行预处理声明周期. 与promise对象的使用--回调函数</title>
	</head>
	<!--<script type="text/javascript" src="js/es6.js" ></script>-->
	<body>
		
	</body>
	<script>
		/*
	var obj={
    	add:function(val){
        	return val+10;
		},
	    name:'I am Jspang'
	};
	
	var pro = new Proxy({
    	add: function (val) {
        	return val + 10;
    	},
    	name: 'I am Jspang'
	}, {
		//预处理先执行get 然后在执行name
	    get:function(target,key,property){
	    	console.log(key);
	    	console.log('come in Get');
	        return target[key];
	    },
	    //set修改值 要添加返回值
	    set:function(target,key,value,receiver){
	  		 console.log(`setting ${key} = ${value}`);
	  		 return target[key]=value;
	  	}
	  },
	);
	console.log(pro.name);
	pro.name='技术胖';
	console.log(pro.name);
	*/
	//预处理.生命周期
	/*
	let target = function(){
		return 'I am jspang'
	}
	let handler={
		apply(target,ctx,args){
			console.log('do apply');
			return Reflect.apply(...arguments);
		}
	}
	
	let pro=new Proxy(target,handler);
	console.log(pro());
	*/
	
	//promise  回调函数1,洗菜做饭  2,坐下来吃饭   3,收拾桌子
	
	let state=1;
	
	function step1(resolve,reject){
		console.log('1,开始洗菜做饭');
		if(state==1){
			resolve('洗菜做饭完成')
		}else{
			reject('洗菜做饭出错');
		}
	};
	function step2(resolve,reject){
		console.log('2,开始坐下来吃饭');
		if(state==1){
			resolve('坐下来吃饭完成')
		}else{
			reject('坐下来吃饭出错');
		}
	};
	function step3(resolve,reject){
		console.log('3,开始收拾桌子');
		if(state==1){
			resolve('收拾桌子完成')
		}else{
			reject('收拾桌子出错');
		}
	};
	new Promise(step1).
	then(function(val){
		console.log(val);
		return new Promise(step2);
	}).
	then(function(val){
		console.log(val);
		return new Promise(step3);
	}).
	then(function(val){
		console.log(val);
	})
	
	
	
	
	</script>

</html>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值