gpt4 book ai didi

javascript - 为什么在 .NET 中 this in button handler 引用 parent 而不是 button?

转载 作者:行者123 更新时间:2023-11-29 18:33:11 26 4
gpt4 key购买 nike

在 javascript DOM 中,this 指的是被点击的元素,这似乎比在 .NET 中更合乎逻辑,其中 this 指的是父元素。为什么选择这个?

按钮也是一个类。如果它真的是 OOP,它也会将按钮视为一等公民。所以这不是范例的问题,而是实现的问题。我的假设是 MS 这样做可能更容易,因为物理模块是为 parent 而不是 child 而存在的。

但对我们来说很遗憾,因为您必须处理这个发件人,这个发件人对按钮来说似乎是陌生的,但实际上是他自己!

最佳答案

它们是不同的系统和不同的范例。

在 .NET 中,您的处理程序将传递一个包含对象的“发件人”参数。处理程序驻留在表单对象或用户控件中,因此“this”指的是该类(如果您执行双击类型的添加处理程序)。如果您手动创建处理程序,那么它可以是任何对象(不一定是表单对象)的一部分,并且“this”将映射到不同的事物。 .NET 事件也冒泡或捕获。

在 DOM 中,您的处理程序传递“发送者”参数。但是,“this”指的是对象。在 DOM 中,事件可以冒泡或捕获。

尽管如此,JavaScript 的设计者没有理由不能提供“发送者”参数,并将“this”映射回持有处理程序的对象。在我看来,这些只是在世界简单得多时做出的历史选择。

关于javascript - 为什么在 .NET 中 this in button handler 引用 parent 而不是 button?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5699685/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com