当前位置: 首页 > 面试题库 >

这个内部功能

支彭亮
2023-03-14
问题内容

我的问题是:

function Foo()
{
   this.foo = "bar"; // <- What is "this" here?
}

据我所知,这取决于如何Foo使用,即用作构造函数或函数。可什么this是在不同的情况下?


问题答案:

this关键字是指功能所属的对象,或window对象如果函数不属于任何对象。

在OOP代码中使用它来引用该函数所属的类/对象,例如:

function foo() {
    this.value = 'Hello, world';

    this.bar = function() {
        alert(this.value);
    }
}

var inst = new foo();
inst.bar();

这提醒: Hello, world

您可以this使用apply()call()函数操纵引用的对象。 (有时非常方便)

var bar1 = new function() {
    this.value = '#1';
}
var bar2 = new function() {
    this.value = '#2';
}

function foo() {
    alert(this.value);
}

foo.call(bar1); // Output: #1
foo.apply(bar2, []); // Output: #2


 类似资料:
  • 下面的代码可以工作,但我收到了SonarLint的通知,因为我在流中使用了匿名类而不是lambda表达式,我不知道如何改进下面的代码来避免通知: 代码解释:我使用java.util的属性类,不幸的是,属性的返回

  • 问题内容: 关于使用/的最佳实践,我有一个非常基本的问题。我有一个像这样的简单函数(DAO) 并在Web服务中使用DAO功能: OR最好在DAO函数中使用/,如下所示: 问题答案: 没有完美的规则。 如果需要尽早但尽可能晚地捕获异常,通常代码会更清晰,更简单。 您应该考虑在发生这种情况时谁必须采取行动,这决定了您是在方法(addVehicle)内进行操作还是调用方必须执行该操作。 例如: 在此示例

  • 以下代码收到Sonarint的通知: 我尝试了以下内容,但在抛出新的IllegalArgumentException时遇到了问题: 你能建议一下吗?

  • 问题内容: Go支持在函数内部嵌套结构,但除了lambda之外没有嵌套函数,这是否意味着无法在函数内部定义嵌套类? 因此,类在函数内部被削弱感到有点奇怪。 有什么提示吗? 问题答案: 实际上,无论您要声明 带有 接收器还是 不 带有接收器的函数都没有关系:不允许在Go中嵌套函数。 尽管您可以使用函数文字来实现以下目的: 在这里,我们创建了一个具有函数类型的变量,并将其分配给另一个函数。调用“外部”

  • 我无法在GWT中编译为js。 devmode一如既往地运行良好。我在编译器之间做了很多更改,所以不知道确切的位置。 什么可以解决这个问题? [gwt 2.5 AE 1.7.1] java.lang.RuntimeException:com.google.gwt.dev.javac.ComilationUnit.getTypes(CompilationUnit.java:324)的com.goole

  • 我想把这个过程内部化,这样只有云功能可以访问App Engineendpoint,但我正在与这个过程作斗争。 由于这两个服务都是无服务器的,所以我不能只过滤App Engine防火墙中的通信量,因为每次创建新实例时云功能都有不同的IP。 我曾尝试遵循本指南,其中建议将所有功能出口通信量与子网的无服务器VPC连接器相关联,然后用NAT控制该子网的所有通信量,并为其分配静态IP地址。这样,我可以通过N