理顺 JavaScript (13) - 对象及 json
2010-09-14 13:40:29 来源:WEB开发网和 Delphi/C# 类似, JavaScript 中所有对象的祖先是 Object, 虽然并不是全部面向对象的, 好像也是基于对象的.
譬如一个字符串类型(string)变量, 可以使用字符串对象(String)的属性和方法, 那是在调用的一瞬间转换成了对象.
建立原始空对象的两种方法
var obj1, obj2;
obj1 = new Object();
obj2 = {};
alert(obj1); // [object Object] - 属于 Object 类的 object
alert(obj2); // [object Object]
//上面两种方法建立的对象都可以使用以下六个方法(不如说是抽象方法):
hasOwnProperty
isPrototypeOf
propertyIsEnumerable
toLocaleString
toString
valueOf
//Object 像不像个接口? 像也不像, 因为以上方法它并不强迫子类实现.
//现在应该让人立马想起空数组的两种建立方法:
var arr1, arr2;
arr1 = new Array();
arr2 = [];
//Array 作为 Object 的子类, 继承或重新实现了上面方法, 并且增加了 sort 等更多数组专用的方法.
//一个是 {}、 一个是 [], 很有意思; 更有意思的是它们可以互相包含.
定义自己的对象
//已存在 Array、Number、Date、RegExp 等实用的类(或叫对象模板), 如果构建自己的类呢?
//很简单, 但不好理解:
function Rectangle(w, h) {
this.w = w;
this.h = h;
}
/* 实例化一个 */
var myObj = new Rectangle(11, 22);
alert(myObj.w); //11
alert(myObj.h); //22
alert(myObj); // [object Object]
//可以看出 myObj 就是一个对象了; 在 js 中函数也是对象, 并且有一个 Function 类存在.
//可以在 Rectangle(函数? 类?) 的基础上继续添加更多方法或属性, 这是后话.
Tags:理顺 JavaScript 对象
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接