VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 网站开发 > JavaScript >
  • JavaScript教程之js权威指南学习笔记(四)对象(4)

21
});
 
 
7、对象的三个属性
(1)原型属性
原型属性是在实例对象创建之初就设置好的。
通过Object.getPrototypeOf()方法可以查询某个对象的原型
如:
 
 
 
 
1
function People() {}     //空的构造函数
2
People.prototype = {     //设置原型属性
3
    constructor: People,
4
    name: "cart",
5
}
6
var cc = new People();    //实例化构造函数,创建一个新的对象
7
console.log(Object.getPrototypeOf(cc));
 
 
检测一个对象是否是另一个对象的原型,用isPrototypeOf()方法
 
 
 
 
1
//定义一个原型对象
2
var p = {
3
    x: 1
4
};
5
var o = Object.create(p);     //使用原型对象创建一个对象
6
console.log(p.isPrototypeOf(o));     // true
7
console.log(Object.prototype.isPrototypeOf(o));     //true o继承p,p继承Object.prototype
 
 
(2)类属性
对象的类属性是一个字符串,用以表示对象的类型信息。
通过toString()方法可以间接的查询到这个对象的类属性。返回如下格式的字符串:
[ object class ]
因此,要想获得对象的类,可以调用对象的toString()方法,然后提取已返回字符串的第8个到倒数第二个位置之间的字符。
 
 
 
 
1
// 定义一个获取对象类属性的函数
2
function classof(o) {
3
    if (o === null) {
4
        return "Null";
5
    }
6
    if (o === undefined) {
7
        return "Undefined";
8
    }
9
    return Object.prototype.toString.call(o).slice(8, -1); //间接调用toString方法返回类属性
10
}
11
classof(1);     // NUmber
12
function f() {};     //定于一个自定义构造函数
13
classof(new f());     // Object
 
 
(3)、可扩展性
对象一旦转换为不可扩展,就无法再将其转换为可扩展的。给一个不可扩展的对象的原型添加属性,这个不可扩展的对象同样会继承这些新属性。
 
 
 
1
var o = {
2
    x: 1,
3
    y: {
4
        z: [false, null, ""]
5
    }
6
};
7
console.log(Object.isExtensible(o));    //true
8
Object.preventExtensions(o);    //将对象转换为不可扩展
9
console.log(Object.isExtensible(o));    //false
 
 
8、序列化对象
对象序列化(serialization)是指将对象的状态转换为字符串,也可以将字符串还原为对象。
使用函数JSON.stringify()和JSON.parse()用来序列化和还原javascript对象。
 
 
 
 
1
// 定义一个测试对象
2
var o = {
3
    x: 1,
4
    y: {
5
        z: [false, null, ""]
6
    }
7
};
8
var s = JSON.stringify(o);
9
var p = JSON.parse(s);
10
console.log(s);    //解析为json格式字符串 {"x":1,"y":{"z":[false,null,""]}}
11
console.log(p);    //将字符串转换为javascript对象
 
 
函数、RegExp、Error对象和undefined值不能序列化和还原。JSON.stringify()只能序列化对象可枚举的自有属性。
 
 

github地址:https://github.com/tonysmile

博客园地址:https://www.cnblogs.com/tonysmile/

Copyright ©2018 tonysmile

【转载文章务必保留出处和署名,谢谢!】



相关教程
关于我们--广告服务--免责声明--本站帮助-友情链接--版权声明--联系我们       黑ICP备07002182号