JavaScript面向对象的支持(上)
2010-09-14 13:37:41 来源:WEB开发网3). this与with关键字的使用
------在JavaScript的对象系统中,this关键字用在两种地方:
- 在构造器函数中,指代新创建的对象实例
- 在对象的方法被调用时,指代调用该方法的对象实例如果一个函数被作为普通函数(而不是对象方法)调用,那么在函数中的this关键字将指向window对象。与此相同的,如果this关键字不在任何函数中,那么他也指向window对象。由于在JavaScript中不明确区分函数与方法。因此有些代码看起来很奇怪:
//---------------------------------------------------------
// 函数的几种可能调用形式
//---------------------------------------------------------
function foo() {
// 下面的this指代调用该方法的对象实例
if (this===window) {
document.write('call a function.', '<BR>');
}
else {
document.write('call a method, by object: ', this.name, '<BR>');
}
}function MyObject(name) {
// 下面的this指代new关键字新创建实例
this.name = name;
this.foo = foo;
}var obj1 = new MyObject('obj1');
var obj2 = new MyObject('obj2');
// 测试1: 作为函数调用
foo();// 测试2: 作为对象方法的调用
obj1.foo();
obj2.foo();// 测试3: 将函数作为“指定对象的”方法调用
foo.call(obj1);
foo.apply(obj2);
在上面的代码里,obj1/obj2对foo()的调用是很普通的调用方法。
Tags:JavaScript 面向 对象
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接