// var a =function() {
// console.log('b', b)
// }
// var b = 'window'
// var c = function() {
// var b = 'function'
// a()
// }
// c()
function d(func) {
var a = function() {
return d(function(defer){console.log('deferred', deferred,'defer', defer)})
}
var deferred= {}
deferred.a = a
if(func) func.call(deferred,deferred)
deferred.add = function () {
deferred.b = 'add'
}
return deferred
}
var re = d();
console.log('re', re)
re.add()
re.a()