javascript – 文字对象内的嵌套函数

前端之家收集整理的这篇文章主要介绍了javascript – 文字对象内的嵌套函数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

如果在文字对象中我试图在嵌套属性/函数中使用“this”引用函数,这不起作用.为什么?嵌套属性有自己的范围吗?

例如,我想从d.f2内部调用f1:

var object = {    

  a: "Var a",b: "Var b",c: "Var c",f1: function() {
    alert("This is f1");
  },d: {
      f2: function() {
       this.f1();
    }
  },e: {
      f3: function() {
        alert("This is f3");
     }
  }
}

object.f1(); //工作
object.d.f2(); //不要工作
object.e.f3(); //工作

谢谢,安德烈.

最佳答案
这指的是f2里面的d而不是对象.您可以存储对象的引用,或直接调用对象,或使用call / apply来调用函数并明确告诉它在该函数中的含义:

object.d.f2.call(object); // now this refers to object inside f2

猜你在找的JavaScript相关文章