日期:2014-05-16  浏览次数:20320 次

JavaScript--JavaScript对象

JavaScript--JavaScript对象
2010年06月19日
    对象概念
  ??从传统意义上来说,JavaScript 并不真正具有类。
  ??JavaScript 定义了“对象定义”,逻辑上等价于其他程序设计语言中的类。
  ??对象是由 new 运算符加上要实例化的对象的名字创建的:var o = new Object();
  ??当有不止一个参数时,构造函数要求使用括号;如果没有参数,括号可以省略:
  var o = new Object;  //注:尽管括号不是必需的,但是为了避免混乱,最好使用括号。
  Object 对象
  ??Object 对象自身用处不大,不过在了解其他类之前,还是应该了解它。
  ??JavaScript 中的所有对象都由Object 对象继承而来。
  ??Object 对象中的所有属性和方法都会出现在其他对象中。
  ??所以理解了 Object 对象,就可以更好地理解其他对象。 Object属性 描述 
  constructor 
  对创建对象的函数的引用(函数引用也就是函数名)。例:
  var str = new String("hello");
  var equal = (str.constructor == String); //equal为true
  又如:
  function Student(name){
  this.name = name;
  }
  var stu = new Student("小王");
  var equal = (stu.constructor == Student); //equal为true prototype 
  对该对象的对象原型的引用。
  对于所有的对象,它默认返回 Object 对象的一个实例。 Object方法 描述 
  hasOwnProperty(property) 
  判断对象是否有某个特定的属性。必须用字符串指定该属性。(例如,o.hasOwnProperty("name")) isPrototypeOf(object)
  判断该对象是否为另一个对象的原型。 propertyIsEnumerable(property) 
  判断给定属性是否可以用 for...in 语句进行枚举。 toString() 
  返回对象的原始字符串表示。 valueOf()
  返回最适合该对象的原始值。对于许多对象,该方法返回的值都与 toString() 的返回值相同。  instanceof 运算符
  ??typeof 运算符运用于引用类型时,无论引用的是什么类型的对象,它都返回 "object"。
  ??JavaScript 引入了另一个运算符 instanceof 来解决这个问题。
  ??instanceof 运算符与 typeof 运算符相似,用于识别正在处理的对象的类型。
  ??与 typeof 方法不同的是,instanceof 方法要求开发者明确地确认对象为某特定类型。 对象废除
  JavaScript 拥有无用存储单元收集程序,意味着不必专门销毁对象来释放内存。当再没有对对象的引用时,称该对象被废除了。运行无用存储单元收集程序时,所有废除的对象都被销毁。每当函数执行完它的代码,无用存储单元收集程序都会运行,释放所有的局部变量,还有在一些其他不可预知的情况下,无用存储单元收集程序也会运行。把对象的所有引用都设置为 null,可以强制性地废除对象。
  三种对象
  ??在 JavaScript 中,所有对象并非同等创建的。
  ??一般来说,可以创建并使用的对象有三种:
  ①本地对象:独立于宿主环境的 JavaScript 实现提供的对象;
  Object ,Function ,Array ,String ,Boolean ,Number ,Date ,RegExp ,Error 
  EvalError ,RangeError ,ReferenceError ,SyntaxError ,TypeError ,URIError
  ②内置对象:由 JavaScript 进行实例化了的对象。JavaScript只定义了两个内置对象 Global 和 Math ;
  ③宿主对象:由 JavaScript 实现的宿主环境提供的对象,所有 BOM 和 DOM 对象都是宿主对象。
  关键字 this
  ??this 用在对象的方法中,关键字 this 总是指向调用该方法的对象。
  ??在构造函数中,引用对象的属性时,必须使用 this 关键字。
  注意:函数也是对象,所以可以给函数定义属性和方法。