function F(){ this.i = 123;}F.prototype.prop = {constructor:F,a:{b:this.i}}var f = new F();console.log(f.prop.a.b);为什么this指向window,怎么可以让this指向构造函数中,获取到123.
1 回答
pardon110
TA贡献1038条经验 获得超227个赞
js中this的指向与上下文相关,直白来说即作用域,通常来讲就是代码段的调用者环境。很显然给出的代码存在两个作用域,全局的window,函数级别的作用域F
换句话来说,在给出的代码片段中,仅有F构造函数块内的this是指向F类的实例,其他则指向全局
所以你可以这样做,构造一个作用域(目的在于指定调用者)
function F(){ this.i = 123 } F.prototype = { a: function(){ return this.i } } var f = new F() console.log(f.i) // 123 console.log(f.a()) // 123
添加回答
举报
0/150
提交
取消