问题标签 [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.
c++ - 在成员函数中使用“删除这个”后,我可以访问其他成员函数。为什么?
我刚刚写了一个示例程序来查看删除这个的行为
问题
- 在 fun() 中执行delete this后,如何使用 fun() 中的指针访问 func_2() ?
- 现在主要是如何在删除该指针时执行obj->fun_2 ?
- 如果我能够在杀死这个对象后访问函数成员,那么为什么数据成员的值为零'0'?
m 使用 linux ubuntu 和 g++ 编译器
javascript - jQuery $(this) 内部函数
我想将 $(this) 传递给函数,但我不确定。有一个类似的线程,但我仍然无法使其工作。我希望有人能帮助我。
javascript - 为什么这两个事件处理程序中的上下文不同
这是一个基础问题,但我无法弄清楚为什么上下文(“this”指针)在第二个事件处理程序中是正确的,而在第一个事件处理程序中是不正确的。
我有这个简单的构造函数来创建对象 myNotifier:
然后我将该myNotifier.saySomething()
方法用作 CLICK 两个按钮的事件处理程序:
第一个显示:“我说:未定义” 第二个显示:“我说:HELLO”
我知道调用方法时上下文(this)不是原始对象,但是为什么在第二个按钮的函数内部调用时它是正确的?
c++ - 不可能:此指针作为默认参数。为什么?
以下代码将无法编译。为什么?
编辑,为清楚起见。这就是我试图做的,使用更少的代码行......
c++ - 相同的 this 指针和可变参数类型的麻烦
我希望只输入一段我不明白它为什么会这样的代码是可以的。
下面的代码有两个问题。
1)为什么this
两个实例的指针显示相同的值?这里是程序的输出:
它显示 2 倍的值0x7ffff1743950
。这让我很惊讶,因为我确信第一个实例在创建第二个实例之前没有被破坏。
2)我尝试制作设置为原始PS
位置的深层副本。orig_ptr
这里使用的设置是递归模板实例化设置。因此orig_ptr
,在每个级别上都应该尊重层次结构并相应地指出。我不明白的是为什么代码编译F{{(void(Is),j,ptr->F[Is])...}}
(它在代码中标记),为什么它不编译F{{(void(Is),j,&ptr->F[Is])...}}
?(我认为这是正确的)。我看不到编译器正在调用T
(aka )的哪个构造函数。RS<WJ<float> >
不仅存在RS<WJ<float> >::RS(Jit&,RS<WJ<float> >)
指针版本。
** 编辑 **
我添加了指针接口,WJ
以便实例化过程F
可以全程递归。我认为这可能是由于 SFINE。但事实并非如此。
用 g++-4.7 (Ubuntu/Linaro 4.7.2-4precise1) 4.7.2 和-O0
.
** 编辑 **
@sehe 的回答为我指明了正确的方向。当然,第二种构造函数void(Is)
中不需要。JV
只有在第一种类型中,它用于模拟std::fill
. 但是我们在初始化列表中!序列运算符的默认实现有助于(void)Is
完全消除。
现在在第二种情况下还有另一种用法Is
,即in ptr->F[Is]
,所以不用人工介绍了void
。现在,这看起来更好:
** 编辑 **
它现在编译并运行良好!
然而,问题 1 仍然存在:为什么this
2x 相同?!?
php - 当我存储到数组时,PHP 类属性被覆盖
对此可能有一个非常简单的解释,但是我已经让这段代码工作了几个月,现在突然间今天它不起作用了。
我从表中检索所有行。我有和对象,它是我从中选择的表的实体模型。当我从关联结果数组中读取行时,我使用“$this->propertyName”存储每个属性,然后将每个对象推送到一个数组中。在我以对象数组结束之前,现在我以重复相同对象的数组结束。这是一个代码片段:
对于每个属性,我的 getter 和 setter 看起来像这样:
和建议或想法?
-TU
c++ - 如何将重载运算符应用于此?
如何在 C++ 类的另一个成员函数中调用重载运算符?
php - 构造函数和 this 指针
问题是:在声明“private $json”之后,我应该在构造函数 $json 还是 $this->json 中使用?
c++ - 围绕递归函数的 lambda 包装器中的 this-pointer 捕获
我有一个Wrap<T>
带有递归成员函数的类模板test(int)
,我想将它传递给带有 lambda 的 STL 算法(std::accumulate
在下面的代码中)。
如果我使用默认的捕获列表=
,并创建我的递归成员函数static
,一切都很好并得到我想要的结果。
但是,如果我将其设为非静态成员函数,Visual C++ 和 gcc 4.7.2 都会抱怨一个未初始化的this
-pointer,除非我将递归调用限定为this->test()
.
LiveWorkSpace上的输出:
取消注释该/*this->/*
部分,给出与静态成员函数相同的结果。
为什么我需要用 来限定我的递归调用this->
?
c++ - 将此实例作为回调参数发送
我有简单的 UI 类,我需要将 UI 元素实例发送到每个元素的回调,所以我可以(很像在 javascript 中)操作调用回调的元素。
这需要将实例发送this
到注册为回调的函数。我怎么做?
当前状态:
现在,有调用回调的函数:
所以,我可以在回调中做这样的事情: