菜鸡学ECMAScript5 - 对象的原型属性和类属性

//对象的属性

//1:对象的原型属性
//创建Test对象
var Test = {};
//设置Test对象的多个属性 defineProperties
Object.defineProperties(Test, {
    'username': {
        value: 'jack',
        writable: true,
        enumerable: true,
        configurble: true
    },
    age: {
        value: 18,
    },
});
//新增一个属性
Test.add = '中国';
//(Object.getOwnPropertyDescriptor(对象名, '属性名'))
//检测对象中某个属性的状态
console.log(Object.getOwnPropertyDescriptor(Test, 'add'));
//把Test对象赋给S对象
var S = Object.create(Test);
//(原型对象名.isPrototypeOf(对象名))
//检测某个对象是否是另外一个对象的原型
console.log(Test.isPrototypeOf(S));

//2:对象的类属性
//对象的类是一个表示对象的字符串,可通过toString来获得类型
var obj = {};
console.log(obj.toString());
//很多内置函数被重写了所以要用下面的方法来获得类型
var date = new Date();
console.log(Object.prototype.toString.call(date));



/////////////////////////////////////////////////////////


//写一个对象类型的方法
function classof(objclass) {
    if (objclass === null) {
        return 'NULL';
    }
    if (objclass === undefined) {
        return 'Undefined'
    }
    //slice()方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。
    return Object.prototype.toString.call(objclass).slice(8, -1);
};
var x = 1;
//var x = new Date();
console.log(classof(x));

你可能感兴趣的:(菜鸡学ECMAScript5 - 对象的原型属性和类属性)