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 关键字。
注意:函数也是对象,所以可以给函数定义属性和方法。