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

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

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

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

  1. var object = {
  2. a: "Var a",b: "Var b",c: "Var c",f1: function() {
  3. alert("This is f1");
  4. },d: {
  5. f2: function() {
  6. this.f1();
  7. }
  8. },e: {
  9. f3: function() {
  10. alert("This is f3");
  11. }
  12. }
  13. }

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

谢谢,安德烈.

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

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

猜你在找的JavaScript相关文章