灼眼繁华
2015-08-12 16:42
this 指当前对象,但是有个小疑问,this只能作用于当前部分?一旦嵌套以后不能连续用一个this而不重新定义?
event我查的是与键盘和鼠标事件有关?不知道对不对?而且有时候用event有时候用e,是规定的还是随意的?
obj完全不知道.....
这三个的区别挺大的。首先需要了解的是,javascript其实是一种面向对象的语言。对象是一种抽象的概念,你可以把对象理解成一个东西。它有各种属性,也有各种方法(一般就是函数)。英语里面管对象叫做object, 简写就是obj.
在面向对象的语言中,有各种各样的对象。比如我们可以规定一个对象。
objA = {
name: 'Alice',
gender: 'female',
age: 40,
function isOld() {
if(this.age>30){return true;}
else return false;
}
}
那么在这个叫做objA的对象里,它有3个属性和一个方法,其实大意就是说,objA的名字叫爱丽丝,是个女的,年龄40,这个对象还能判断自己老不老。我们引用对象的属性和方法的时候,直接能用'.'. 比如 objA.name, objA.isOld().
this是怎么回事呢,就是说,你在对象本身的方法中引用对象本身的属性的时候,你就可以用this来代替这个对象,就像objA.isOld里面有this.age这个用法,这里this.age就是说的objA.name。但是由于是在对象内部,所以可以用this。所以使用this的时候,它具体代表什么,那要看你是在哪个对象当中使用的了。至于说,如果你是嵌套的对象,而且父对象和子对象当中又相同的变量,我认为(我没试验过),子对象中的this代表子对象,而不能代替父对象。
而event这个东西,它其实只是针对事件才有的。当浏览器有事件触发时,就会产生event这个对象,而这个对象可以通过事件处理函数当中的参数获得,比如, obj.oncllick = function(e) { }. 这里是javascript的一种机制,无论你这个处理函数当中的参数写成什么,它都会把event对象传递给那个参数,所以只要处理函数中的那个参数是合法的变量名,写成什么都可以,不过为了可读性,人们多数写成event或者e。
当代码的执行环境发生了变化,this的指向就会发生改变;
事件:用户或者浏览器自身·执行的某个动作;
事件对象:在触发DOM上的某个事件时,就会产生一个事件对象event;
事件处理程序可以用一个变量(符合变量的命名规则就行)接收这个对象,进而做出其他操作。
你说的obj是指什么?
DOM事件探秘
99544 学习 · 1197 问题
相似问题