js的对象特性

Javascript中的对象是无处不在的,function,boolean,正则等都是对象。对象主要用于收集和管理数据。
1)它内部数据以“属性名-属性值”的形式存在,如下,

var empty_object = {};

var stooge = {
    "first-name": "Jerome",
    "last-name": "Howard"
};
2)属性名,可以是任何字符串,如空字串也是可以的,双引号不是必须的;属性值可以是除undefined的任何

值。
如果值是对象,那么嵌套的对象和父对象就有了父子关系,轻易实现“树”关系。
var flight = {
    airline: "Oceanic",
    number: 815,
    departure: {
        IATA: "SYD",
        time: "2004-09-22 14:55",
        city: "Sydney"
    },
    arrival: {
        IATA: "LAX",
        time: "2004-09-23 10:42",
        city: "Los Angeles"
},
tell: (r){
alert(t);
}
};

3)prototype属性使对象可以很容易的继承属性,减少初始化时间和节省内存。
if (typeof Object.beget !== 'function') {
     Object.beget = function (o) {
         var F = function () {};
         F.prototype = o;
         return new F();
     };
}
var another_stooge = Object.beget(stooge);
another_stooge['first-name'] = 'Harry';
another_stooge['middle-name'] = 'Moses';
another_stooge.nickname = 'Moe';
stooge.profession = 'actor';
another_stooge.profession    // 'actor'

4)访问属性的形式:
a)使用点符号:stooge. first-name
b)使用中括号:stooge.[first-name]

5) undefined:访问的时候当属性不存在的时候,
Stooge.num    //undefined
如果我们要访问属性没有定义的时候给它赋个初始值:
var y=stooge.num||”yu”;
6)更新对象:
用赋值语句: stooge.num=”yu”;
7)对象通过引用传递,不可能被复制。
区别:
var a = {}, b = {}, c = {};    // 不同的空对象
a = b = c = {};//引用同一个空对象
8)反射
typeof stooge. first-name //string
typeof stooge. fight //object
typeof flight.tell    // function

9)枚举,它有两种方式使用。:
a)var name;
for (name in another_stooge) {
    if (typeof another_stooge[name] !== 'function') {
        document.writeln(name + ': ' + another_stooge[name]);
    }
}
b)var i;
var properties = [
    'first-name',
    'middle-name',
    'last-name',
    'profession'
];
for (i = 0; i < properties.length; i += 1) {
    document.writeln(properties[i] + ': ' +
            another_stooge[properties[i]]);
    }
}
9)delete:原型属性不能删除,在对象内部用var 和function 直接声明的属性和方法不能删除,并且delete

会返回值,删除了不能删除的属性会返回false,否则返回true,需要的注意的是删除没有的属性时候也会返回

true.
10)定义包:
var MYAPP = {};
MYAPP.stooge = {
    "first-name": "Joe",
    "last-name": "Howard"
};

MYAPP.flight = {
    airline: "Oceanic",
    number: 815,
    departure: {
        IATA: "SYD",
        time: "2004-09-22 14:55",
        city: "Sydney"
    },
    arrival: {
        IATA: "LAX",
        time: "2004-09-23 10:42",
        city: "Los Angeles"
    }
};

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值