code: public boolean exists(Object key) {
  		for (Scope cur=this; cur!=null; cur=cur.parent) {
  			if (cur.data != null && cur.data.containsKey(key)) {
  				return true;
  			}
  		}
  		return false;
  	}
docs: 自内向外在作用域栈中查找变量是否存在