今天宠物迷的小编给各位宠物饲养爱好者分享事件的作用的宠物知识,其中也会对JavaScript的事件机制有什么用?进行专业的解释,如果能碰巧解决你现在面临的宠物相关问题,别忘了关注本站哦,现在我们开始吧!
事件对JavaScript这个太重要,平时使用网 页时的点击,选中,加载,提交表格等等行为都是网 页中的事件。
它的用处就是方便我们控制网 页的行为,比如:
监 听按钮的点击事件onclick,当该事件发生后可以执行JavaScript弹出照片;
监 听页面的加载事件onload,进行一些初始化操作。
监 听表单的onblur事件,当输入框失去焦点时是否显示提示信息。如下面的邮箱输入框:
(秒秒学-onblur事件)
监 听表单的onfocus事件,当输入框获取焦点时执行一些操作,如清除提示信息。
(秒秒学-onfocus事件)
有一个教程网-秒秒学上把相关的知识过一遍。
成王败寇
历史:汉语词语,含义有三:
1.记载和解释作为一系列人类进程历史事件的一门学科。
2.沿革,来历。
3.过去的事实。
历史,简称史,一般指人类社会历史,它是记载和解释一系列人类活动进程的历史事件的一门学科,多数时候也是对当下时代的映射。如果仅仅只是总结和映射,那么,历史作为一个存在,就应该消失。历史的问题在于不断发现真的过去,在于用材料说话,让人如何在现实中可能成为可以讨论的问题。[1]
历史是延伸的。历史是文化的传承,积累和扩展,是人类文明的轨迹。
成王败寇
历史:汉语词语,含义有三:
1.记载和解释作为一系列人类进程历史事件的一门学科。
2.沿革,来历。
3.过去的事实。
历史,简称史,一般指人类社会历史,它是记载和解释一系列人类活动进程的历史事件的一门学科,多数时候也是对当下时代的映射。如果仅仅只是总结和映射,那么,历史作为一个存在,就应该消失。历史的问题在于不断发现真的过去,在于用材料说话,让人如何在现实中可能成为可以讨论的问题。[1] 历史是延伸的。历史是文化的传承,积累和扩展,是人类文明的轨迹。
1.C#中的事件和委托的作用?
事件代表一个组件能够被关注的一种信号,比如你的大肠会向你发出想拉屎的信号,你就可以接收到上厕所。
委托是可以把一个过程封装成变量进行传递并且执行的对象,比如你上蹲坑和上坐马桶拉屎的方式是不一样的,但是你的大脑不需要知道两种方式的不同,只需要在蹲坑的时候获取身体用于蹲位姿势的委托进行调用拉屎,在坐马桶的时候获取坐姿的委托进行调用拉屎。
2.他们之间的关系?
委托是一种类型,事件是一种成员,就相当于public int Age {get;set;}这个属性中,int就是类型,Age是一个成员,public event EventHandler Push;这个事件中EventHandler就是委托类型,Push是事件他是一个成员。
3.和什么情况使用委托和事件?
事件是组件中的抽象概念,同样包括状态和操作也是组件中的概念,对应到C#里面就是属性和方法。所以像控件之类的组件都会有事件。而委托代表一个代码的执行过程,C#3.0引入linq以后,用的就非常频繁了。
4.但是用事件的方式来调用的话有什么好处?
事件是一种封装,就好像属性会封装字段一样,可以把定义和实现隔离开来,给你举个例子就是DateTime实际上你看那么多属性,其实里面只有一个字段存储时间,各种日期啊年啊属性都是根据这个时间算出来的。事件也把内部类型为一个委托的字段封装起来,这样在类的外部就只能使用事件来注册或者注销事件关注,而不能引发事件。就好像你拉不拉屎不由其他人控制一样。
5.添加了委托一定要再定义事件来调用么?
看情况,你可以不用属性封装字段,但是在代码设计上来说,或者面向组件设计上来说,封装是一种设计原则,你学过设计模式,或者参与过大型系统的设计就会很容易理解这点。
6/什么情况下只要使用委托就可以,什么情况下必须配合事件使用?
一般情况下建立组件模型都使用事件
C#中的事件处理程序
C#中的事件处理程序是一个带有特定输入参数的代理,如下所示:
public delegate void MyEventHandler(object sender, MyEventArgs e);
上面定义中的第一个参数(sender)指定了发生事件的对象,第二个参数(e)存储着在事件处理程序中要用到的数据。MyEventArgs类是继承EventArgs类得来的,EventArgs类是MouseEventArgs、ListChangedEventArgs等更专业化的类的基础类。对于GUI事件,我们可以使用这些特定的EventArgs类的对象,而无需自己创建特定的EventArgs类。然而,对于非GUI事件而言,我们仍然需要创建自己的特定的EventArgs类,存储希望向代理对象传递的数据。我们可以通过继承EventArgs类创建自己特定的EventArgs类:
public class MyEventArgs EventArgs{
public string m_myEventArgumentdata;
}
在事件处理程序中,代理对象的调用需要用到event关健字,如下所示:
public event MyEventHandler MyEvent;
下面我们将建立二个类,体会.Net框架中事件处理机制的工作原理。在对代理的讨论的第二个步骤中,要求我们定义与定义的代理有完全相同的输入参数的方法。在我们的例子中,类A将提供事件处理程序(与代理对象具有相同输入参数的方法。),它将创建代理对象(对代理讨论中的第三步)并安装事件处理程序。类A然后会将代理对象传递给类B。当类B中有事件出现时,它就会执行类A中的事件处理程序方法。
using System;
//步骤1:创建代理对象
public delegate void MyHandler1(object sender,MyEventArgs e);
public delegate void MyHandler2(object sender,MyEventArgs e);
//步骤2:创建事件处理程序方法
class A{
public const string m_id="Class A";
public void OnHandler1(object sender,MyEventArgs e){
Console.WriteLine("I am in OnHandler1 and MyEventArgs is {0}", e.m_id);
}
public void OnHandler2(object sender,MyEventArgs e){
Console.WriteLine("I am in OnHandler2 and MyEventArgs is {0}", e.m_id);
}
//步骤3:创建代理,安装事件处理程序,并向启动事件的对象注册。
public A(B b){
MyHandler1 d1=new MyHandler1(OnHandler1);
MyHandler2 d2=new MyHandler2(OnHandler2);
b.Event1 +=d1;
b.Event2 +=d2;
}
}
//步骤4:通过代理调用封装的方法。
class B{
public event MyHandler1 Event1;
public event MyHandler2 Event2;
public void FireEvent1(MyEventArgs e){
if(Event1 != null){
Event1(this,e);
}
}
public void FireEvent2(MyEventArgs e){
if(Event2 != null){
Event2(this,e);
}
}
}
public class MyEventArgs EventArgs{
public string m_id;
}
public class Driver{
public static void Main(){
B b= new B();
A a= new A(b);
MyEventArgs e1=new MyEventArgs();
MyEventArgs e2=new MyEventArgs();
e1.m_id ="Event args for event 1";
e2.m_id ="Event args for event 2";
b.FireEvent1(e1);
b.FireEvent2(e2);
}
}
C#中的GUI事件处理
Windows Forms(支持GUI应用程序的.NET框架)中的事件处理使用.NET事件处理模式。我们下面将应用这种模式编写一个简单的应用程序,该应用程序有一个继承自System.Windows.Forms.Form类的MyForm类。如果仔细地研究一下代码和其中的三行注释,就会发现其实我们无须定义代理和使用event关健字调用这些代理,因为我们已经可以使用GUI控制(表格、按钮等)的事件(鼠标点击等),代理就是System.EventHandler。当然了,我们仍然需要定义方法,创建代理对象(System.EventHandler),并在代理对象中安装方法,一旦有事件发生,方法就会开始执行。
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
public class MyForm Form{
private Button m_nameButton;
private Button m_clearButton;
private Label m_nameLabel;
private Container m_components = null;
public MyForm(){
initializeComponents();
}
private void initializeComponents(){
m_nameLabel=new Label();
m_nameButton = new Button();
m_clearButton = new Button();
SuspendLayout();
m_nameLabel.Location=new Point(16,16);
m_nameLabel.Text="Click NAME button, please";
m_nameLabel.Size=new Size(300,23);
m_nameButton.Location=new Point(16,120);
m_nameButton.Size=new Size(176, 23);
m_nameButton.Text="NAME";
//创建代理,并安装方法,将代理**在按钮的Click事件上
m_nameButton.Click += new System.EventHandler(NameButtonClicked);
m_clearButton.Location=new Point(16,152);
m_clearButton.Size=new Size(176,23);
m_clearButton.Text="CLEAR";
//创建代理,并安装方法,将代理**在按钮的Click事件上
m_clearButton.Click += new System.EventHandler(ClearButtonClicked);
this.ClientSize = new Size(292, 271);
this.Controls.AddRange(new Control[] {m_nameLabel,m_nameButton,m_clearButton});
this.ResumeLayout(false);
}
//定义输入参数与代理完全相同的方法
private void NameButtonClicked(object sender, EventArgs e){
m_nameLabel.Text="My name is john, please click CLEAR button to clear it";
}
private void ClearButtonClicked(object sender,EventArgs e){
m_nameLabel.Text="Click NAME button, please";
}
public static void Main(){
Application.Run(new MyForm());
}
}
明成祖命郑和下西洋的原因,主要是为了宣扬明朝的国威,扩大明朝在海外的**影响,招致各国来朝来贡。其次,也是为了发展海外贸易,尤其是朝贡贸易,让各国以朝贡的形式来中国做买卖。或说郑和航行的目的在于追寻建文帝的踪迹。当然建文帝的下落不明,在明成祖不能没有疑问,使郑和兼有这样的动机也未可定,然而这决不是郑和下西洋的主要目的。郑和奉命出使西洋,从永乐三年(1405年)至宣德八年(1433年),凡七次。第一次在永乐三年(1405年)冬至永乐五年(1407年)九月,第二次在永乐五年冬至永乐七年(1409年)夏末,第三次在永乐七年九月至永乐九年(1411年)六月,第四次在永乐十一年(1413年)冬至永乐十三年(1415年)七月,第五次在永乐十五年(1417年)冬至永乐十七年(1419年)七月,第六次在永乐十九年(1421年)春至永乐二十年(1442年)八月,第七次在宣德六年(1431年)十二月至宣德八年(1433年)七月。
意义的解释:价值;作用
作用的解释:1、对人或事物产生影响;
2、对人或事物产生的影响或其功能、效果
一般情况下,历史作用侧重历史事件的具体的、短时或当时的作用,如黄巢、王仙芝起义瓦解了大唐帝国。
历史意义侧重在历史地位上的作用,是正面的价值,以积极作用为主。有的意义是时代的标志,如中华人民共和国的成立。它侧重于精神方面。如辛亥**使**共和观念深入人心。
作用是中性词,意义是褒义词.范围上讲历史作用包括历史意义,就是说某件事或某个人的历史作用有好的有坏的,而历史意义是历史作用里正面的积极的那部分。
本文由宠物迷 百科常识栏目发布,非常欢迎各位朋友分享到个人朋友圈,但转载请说明文章出处“JavaScript的事件机制有什么用?”
下一篇
武汉婚纱摄影口碑排名前三名?