相对于很多其他的面向对象语言来说,this代表的就是当前对象。例如Java中的this就是编译期间确定的。而在 Javascr ipt 中,this 是动态绑定,或称为运行期绑定的
Java中的this
在以下代码中。this代表的就是p对象。
public class Test {
public static void main(String[] args) {
Person p = new Person("zmt",30);
System.out.println(p.name);
}
}
为了支持c++的多态性,才用了动态绑定和静态绑定。理解他们的区别有助于更好的理解多态性,以及在编程的过程中避免犯错误。需要理解四个名词:1、对象的静态类型:对象在声明时采用的类型。是在编译期确定的。2、对象的动态类型:目前所指对象的类型。是在运行期决定的。对象的动态类型可以更改,但是静态类型无法更改。关于对象的静态类型和动态类型,看一个示例: 代码如下:class B{}class C : public B{}class D : public B{}D* pD = new D();//pD的静态