日期:2014-05-16 浏览次数:20402 次
JavaScript 类
一、javascript也作为一种面向对象的语言,它也可以有类,有对象,可以用new来创建类实例,用实例调用它的方法。只是javascript中类形式与java以及其他面向对象语言有所差异而已。
二、类举例
function className()
{
?this.a = 8;
?this.setA = function (parame)
?{
??this.a = parame;
?};
}
function testClass()
{
?var cls = new className();
?document.write(cls.a);
?cls.setA(9);
?document.write(cls.a);
}
================================
深入理解javascript类,参考一下
================================
三、this关键字
this属性表示当前对象,如果在全局作用范围内使用this,则指代当前页面对象window; 如果在函数中使用this,则this指代什么是根据运行时此函数在什么对象上被调用。 我们还可以使用apply和call两个全局方法来改变函数中this的具体指向。 先看一个在全局作用范围内使用this的例子:
<?script?type="text/javascript">? ????console.log(this?===?window);??//?true ? ????console.log(window.alert?===?this.alert);??//?true ? ????console.log(this.parseInt("021",?10));??//?10 ? <?/script> ?
函数中的this属性是在运行时决定的,而不是函数定义时,如下: //?定义一个全局函数 ? function?foo()?{ ? ????console.log(this.fruit); ? } ? //?定义一个全局变量,等价于window.fruit?=?"apple"; ? var?fruit?=?"apple"; ? //?此时函数foo中this指向window对象 ? //?这种调用方式和window.foo();是完全等价的 ? foo();??//?"apple" ? ? //?自定义一个对象,并将此对象的属性foo指向全局函数foo ? var?pack?=?{ ? ????fruit:?"orange", ? ????foo:?foo ? }; //?此时函数foo中this指向window.pack对象 ? pack.foo();?//?"orange"?? 全局函数apply和call可以用来改变函数中this属性的指向,如下: