with(me){ soul = (function(){ const godRules = { test(n,v){ // return boolean } } return { think(){}, do: (name,data)=>{ if(godRules.test(name,data)){ // exec } } } })() body = { async head(){}, hand(){}, foot(){} } let exec = body.head.bind(soul) while(alive){ console.log('hello life') if(married){ console.log(`wife is ${wife}`) exec().then() } do... } soul = null }