Unexpected closure behavior

I plan to do "extension points" in a framework im building and i'm finding a way how i can provide the "core" to an extension so it can add functionality but not exposing the core object that it can be arbitrarily manipulated (i know providing an interface is the better idea) but sill, while i was testing (as well as learning), i wondered why this happens: (function() { var core = {'bar': 'foo'} function getCore() {return core;} window.kit = { core: core, getCore: getCore } }()); //initial check console.log(kit.core) console.log(kit.getCore()); //change the bar kit.core.bar = 'baz'; //we will both see 'baz' console.log(kit.core) console.log(kit.getCore()); //null the core kit.core = null; //this time... console.log(kit.core) //core is null on this one console.log(kit.getCore()); //why is the core still there on this one?​​​​​​​​​​​​

以上就是Unexpected closure behavior的详细内容,更多请关注web前端其它相关文章!

赞(0) 打赏
未经允许不得转载:web前端首页 » JavaScript 答疑

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

前端开发相关广告投放 更专业 更精准