早绑定和晚绑定

引用
早绑定(early binding)是指在实例化对象之前定义它的属性和方法,这样编译器或解释程序就能够提前转换机器代码。在 Java 和 Visual Basic 这样的语言中,有了早绑定,就可以在开发环境中使用 IntelliSense(即给开发者提供对象中属性和方法列表的功能)。ECMAScript 不是强类型语言,所以不支持早绑定。

另一方面,晚绑定(late binding)指的是编译器或解释程序在运行前,不知道对象的类型。使用晚绑定,无需检查对象的类型,只需检查对象是否支持属性和方法即可。ECMAScript 中的所有变量都采用晚绑定方法。这样就允许执行大量的对象操作,而无任何惩罚。


早绑定就类似于java中,事先定义对象的属性,方法,然后我们实例化对象,赋给它相应的属性和方法。这样,由于事先定义好了对象,编译器就可以提前转换机器代码。
而上面关于晚绑定的定义我觉得只是晚绑定执行后的一个结果,不是晚绑定的定义。
其实晚绑定就是等到我们要用的时候再把属性和方法赋给对象,我们不事先定义。这样编译器在运行之前不知道对象的类型。


早绑定的优点是:
编译效率
代码提示(代码智能感知)
编译时类型检查
晚绑定的优点是:
不用申明类型
对象类型可以随时更改

你可能感兴趣的:(JavaScript)