
为什么 createDomTree 无法获取到 test 这个变量? test 是定义在 createDomTree()之外的。
var app = function() { this.sidebar = { test: 1, createDomTree: function() { console.log(test) } } } console.log(new app().sidebar); // {test: 1, createDomTree: } new app().sidebar.createDomTree(); // Uncaught ReferenceError: test is not defined 1 moen 2022-09-25 21:12:41 +08:00 你这样写其实访问的是 globalThis.test ,而你期望的 test 在 createDomTree() 里是在 this 上 |
2 DrakeXiang 2022-09-25 21:30:21 +08:00 这个 test 不是变量。。是对象属性 `{ a: 1, b: a } ` 你觉得这么写可以么。。 |
3 wangtian2020 2022-09-26 08:41:19 +08:00 console.log(this.test) |
4 thinkershare 2022-09-26 10:22:08 +08:00 因为 Javascript 不会将 this 默认作为 scope, 如果想要访问函数的 this scope, 必须显示使用 this., 而且 this 是动态绑定的, 它总是 instance.method()前面的 instance( 已经绑定的函数除外) |
5 monologue520 2022-09-26 16:06:38 +08:00 访问变量,首先应确定变量所在的上下文环境, 在没有确定上下文环境的情况下默认为 window,而 window 下并无「 test 」,所以会报错 |