//对象的属性
//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));