每天CookBook之JavaScript-044

  • 使用defineProperty拓展对象
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>044</title>
</head>
<body>
    
</body>
<script type="text/javascript">
(function () {
    var data = {};
    Object.defineProperty(data, 'type', {
        value: 'primary',
        enumerable: true
    });

    console.log(data.type);
    data.type = 'secondary';
    console.log(data.type);

    Object.defineProperty(data, 'id',{
        value: 1,
        writable: true
    });
    console.log(data.id);
    data.id = 300;
    console.log(data.id);

    for(prop in data){
        console.log(prop);
    }
})();

(function () {
    var data = {};
    var group = 'history';
    Object.defineProperty(data, "category", {
        get: function(){return group;},
        set: function(value) {group = value;},
        enumerable : true,
        configurable: true
    });

    console.log(data.category);

    group = 'math';
    console.log(data.category);
    data.category = 'spanish';
    console.log(data.category);
    console.log(group);
 })();  
</script>
</html>
posted @ 2016-07-21 21:11  4Thing  阅读(90)  评论(0编辑  收藏  举报