WEB开发网
开发学院网页设计JavaScript JavaScript面向对象的支持(上) 阅读

JavaScript面向对象的支持(上)

 2010-09-14 13:37:41 来源:WEB开发网   
核心提示: 3). this与with关键字的使用--在JavaScript的对象系统中,this关键字用在两种地方:- 在构造器函数中,JavaScript面向对象的支持(上)(10),指代新创建的对象实例- 在对象的方法被调用时,指代调用该方法的对象实例如果一个函数被作为普通函数(而不是对象方法)

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()的调用是很普通的调用方法。

上一页  5 6 7 8 9 10 

Tags:JavaScript 面向 对象

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接