问题标签 [this-pointer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
504 浏览

c++ - 物理向量构造函数,幅度和单位向量函数不起作用c ++

我正在编写一个名为 Vector 的类,它表示一个 3 维向量。我需要一个构造函数,它可以采用预先存在的 Vector 对象并从中创建一个新对象。这是构造函数:

这是编译器给我的注释:

我还有一个幅度函数:

我来自java,所以使用这个我的意思是说使用这个类的实例并将它作为向量传递给点函数。我收到以下错误:

我还有一个单位向量函数,我尝试使用上面的构造函数创建 Vector 对象的副本,使用this.

我收到以下错误:

我该如何解决这些错误?谢谢你。

0 投票
1 回答
628 浏览

javascript - 如何提供指向 Angular 6 组件实例的“this”上下文?

我有一个基于 D3 和 JS 的地球地球仪工作演示。现在我正在尝试从中创建一个 Angular 6 组件。

这是没有 Angular 的完整演示:

http://jsfiddle.net/up715k2n/

这是简化的 Angular 组件演示:

https://stackblitz.com/edit/angular-dohwvt

如果您移动鼠标,应用程序将 console.log 'this'。在两个演示中,我都有指向画布的“this”,这是正确的。

但在 Angular 示例中,该应用程序有一个错误:

this.getCountry 不是函数

因为 'getCountry' 是一个组件方法,而不是画布。

所以,我试图找到同时获取上下文的方法 - 画布和组件。

怎么做?

https://stackblitz.com/edit/angular-rlttwv?file=src/app/earth-globe.component.ts - 指向组件

https://stackblitz.com/edit/angular-xjahkl?file=src/app/earth-globe.component.ts - 指向画布

0 投票
1 回答
934 浏览

c++ - 读取访问冲突。这是 0xCDCDCDCD

我对自己做错了什么感到困惑?在调试时,this显示0xcdcdcdcd {theDouble=??? }所以我知道我的变量没有存储在我的 mutator 中。我将如何解决这个问题?我应该在this某个地方初始化吗?顺便说一句,我正在使用视觉工作室。感谢您的帮助。

0 投票
1 回答
940 浏览

c++ - 此指针错误没有构造函数实例与参数列表匹配

请帮助错误:没有构造函数实例与参数列表匹配。还请帮助解释“strcpy(this->name, name);”

在此处输入图像描述

0 投票
2 回答
44 浏览

javascript - 如何让ES6类的静态函数中的this指向函数本身

我想在 ES6 类中获取静态函数名称,但这样做时我没有得到正确的结果。

如何获取静态方法的名称?

0 投票
12 回答
8012 浏览

c++ - “this”指针只是编译时的东西吗?

我问自己是否this会过度使用指针,因为我通常每次引用成员变量或函数时都会使用它。我想知道它是否会对性能产生影响,因为必须有一个每次都需要取消引用的指针。所以我写了一些测试代码

令人惊讶的是,即使-O0它们输出完全相同的汇编代码。

此外,如果我使用一个成员函数并在另一个成员函数中调用它,它会显示相同的行为。那么this指针只是编译时的东西而不是实际的指针吗?或者是否存在this实际翻译和取消引用的情况?我使用 GCC 4.4.3 顺便说一句。

0 投票
2 回答
589 浏览

c++ - 常量函数由非常量对象调用。为什么?

我是 C++ 的新手,面临常量对象的问题。我已经声明了一个名为function的常量成员函数(据我所知,一个常量函数只能由一个常量对象调用)但是这里一个常规对象调用一个常量对象。请解释为什么会这样。代码在这里

我的类.h

我的类.cpp

主文件

请帮帮我。谢谢

0 投票
3 回答
122 浏览

c++ - 使用 *this 与使用 & 运算符的基对象和派生对象的地址差异

有人可以尝试解释一下为什么我在使用这个指针和 & 运算符时会在基址和派生对象的地址上有所不同。下面是我的代码

两者都是一样的。

当我在 main 中添加另外两个语句时,如下所示

使用命名空间标准;

O/P如下图

现在我可以清楚地看到地址不同

a) 这种差异的原因可能是什么
b) 我想知道的另一件事是派生类中的基础子对象是否与基础对象完全相同?我对此感到困惑,因为如果我们在基类中说如果我们有一个变量 x 并且如果我们有这个基类的派生类(非多态情况)现在如果我们在派生中谈论基子对象,它是基类中存在的相同 x 也存在于派生类的基子对象中(我的意思是派生的基子对象和基子对象中具有相同地址的变量),或者我们在基子对象和基子对象中都有一个单独的 x 副本派生的(我的意思是具有不同地址的变量)

0 投票
1 回答
1395 浏览

c++ - 一个对象的成员函数可以修改另一个对象吗?

今天的问题是,一个对象可以修改另一个相同类类型的对象吗?例如,假设一个类有一些私有数据成员。我们创建了该类类型的两个对象。一个对象如何修改另一个对象?这样做是否合法?

我们可以编写一个成员函数,让一个对象能够修改另一个相同类类型的对象吗?如果一个对象代表视频游戏中的一名战士,并且您想让一名战士能够伤害另一名战士,这可能会很有用。

事实证明,在 C++ 中可以做到这一点。我们想了解为什么 C++ 赋予我们这样做的能力。这样做,我们必须首先了解成员函数实际上是什么以及它是如何工作的。阅读问题的答案。

0 投票
1 回答
73 浏览

c++ - 我的类方法中是否需要“this 指针”?

getA()&getB() 和 setA()&setB() 之间有什么区别吗?

如果它们相同,那么首选语法是什么?