/*闭包,defineProperty*/
var foo = function() {
    var o = {
        a: 1,
        b: 2,
        /**更多属性**/
    };
    return function(key) {
        // var tt = (o[key] = 2333);
        var tt = o[key];
        return tt;
    }
};
//不改变上述代码,获取对象o的所有属性
var fooFun = foo();
var key = Symbol();//保证key独一无二,才能在取值时追溯到原型
Object.defineProperty(Object.prototype, key, {
	get() {
		console.log("正在获取对象的值");
        return this;
    },
    set(v) {
    	console.log("正在给对象赋值%s",v);
        return this;
    }
});
var o = fooFun(key);
console.log(Object.keys(o));
/*var a = {};
Object.defineProperty(a, "a", {
	get:function() {
		console.log("正在获取对象的值");
        return this;
    },
    set:function(v) {
    	console.log("正在给对象赋值%s",v);
        return this;
    }
});
a.a = 5;
var b = a.a;*/

//账户金额添加每隔三位添加分隔符
//添加参数固定两位小数
//同时也可以固定整数长度,不够时以0补充
Number(total).toLocaleString('en-us', {maximumFractionDigits: 2, minimumFractionDigits: 2});
//不需要小数或自带小数,直接调用方法
Number(total).toLocaleString();
//修改浏览器只读对象属性
Object.defineProperty(navigator,'userAgent',{get:function(){return '';}});

//禁止浏览器表单自动填充,在表单第一行添加