js中改变this指向的三种方法 jsthis有哪几种指向?

[更新]
·
·
分类:互联网
1270 阅读

js中改变this指向的三种方法

jsthis有哪几种指向?

jsthis有哪几种指向?

jsthis有以下七种指向:
1、给当前元素的某个事件绑定方法,当事件触发方法执行,方法中的this指向是当前元素本身;
2、方法执行,看前面有没有点“.”,有点,点前面是谁,this就是谁;没有点就是window对象;
3、构造函数执行的时候,方法体中的this就是当前构造函数类的实例;
4、自执行函数一般都是window对象;
5、定时器中this:window对象(通过call传入的window对象);
6、对象方法中this指向对象本身(受定时器影响:window);
7、箭头函数中this,沿作用域链向外找,直到有this定义(不受内部定时器影响)。

j调用构造方法遵循什么规则?

多态性是面向对象程序设计的重要特性之一。 多态性分为两种:静态多态和动态多态。 方法重载用于事项静态多态性。 重载方法: 对于类的方法,如果有两个方法的方法名相同,但参数不一致,那么可以说,一个方法是另一个方法的重载方法。 重载方法必须满足以下条件:(只记住前两条就可以) 1.方法名必须相同;
2.方法的参数类型、个数至少有一项不同;
3.方法的返回类型可以不同;
4.方法的修饰符可以不相同。 只有对不同的数据完成基本相同的任务的方法才用方法重载,使用方法重载的优点是: 1.不必对相同的操作使用不同的方法名;
2.有助于更轻松的理解和调试代码;
3.更易于维护代码。 构造方法必须满足以下语法规则:
1.方法名必须与类名相同;
2.不要声明返回类型。 当类中没有定义构造方法时将使用默认的构造方法。 this关键字----- this是一个引用,该引用始终指向程序对象本身。 this的作用: 1.区分变量;
2.调用重载的构造方法。 用this语句来调用其它的构造方法时,必须遵守以下语句规则:
假如在一个构造方法中使用了this语句,那么他必须作为构造方法的第一条语句(注释的语句除外); 只能在一个构造方法中用this语句来调用类的其它的构造方法,而不能在实力方法中用this语句来调用类的构造方法; 只能用this语句来调用其它构造方法,而不能通过方法名来直接调用构造方法。
static关键字----- 用static修饰的成员变量表示静态变量,可以直接通过类名来访问; 用static修饰的成员方法表示静态方法,可以直接通过类名来访问; 用static修饰的程序代码块表示静态代码块,当Java虚拟机加载类时就会执行该代码块。
被static所修饰的成员变量和成员方法表明该成员归某个类所有,它不依赖于类的特定实例,被类的所有实例所共享。 静态变量和实例变量的区别如下:
静态变量在内存中只有一个拷贝,运行时Java虚拟机只为静态变量分配一次内存,在加载类的过程中完成静态变量的内存分配。
可以直接通过类名访问静态变量,也可以通过实例来访问静态变量。
对于实例变量,每创建一个实例,就会为实例变量分配一次内存,实例变量可以在内存中有好几个拷贝,每个拷贝属于特定的实例,互不影响。
静态方法可以访问的内容: 因为静态方法不需要通过它所属的类的任何实例就会被调用,因此在静态方法中不能使用this关键字,也不能直接访问所属类的实例变量和实例方法,但是可以直接访问所属类的静态变量和静态方法。
实例方法可以访问的内容: 如果一个方法没有被static修饰,那么它就是实例方法,在实例方法中可以直接访问所属类的静态变量、静态方法、实例变量和实例方法。
static代码块----- 在Java虚拟机加载类时就会执行这些静态代码块(即先于main方法被执行),如果在类中包括多个静态代码块,那么Java虚拟机将按照它们在类中出现的先后顺序执行它们,每个静态代码块只会执行一次。