JS对象Object的常用方法汇总

//Object.assign函数,第一个参数为目标对象,后面依次为源对象
//将来自一个或多个源对象中的值复制到一个目标对象
var first = {name : 'kong'};
var last = {age : 18};
var person = Object.assign(first, last);
console.log(person);
//{name : 'kong', age : 18},注意这里first因为是第一个参数会被当成目标对象,所以first自身属性也被更改为和person一样了,即first === person
//用于克隆对象
var clone = Object.assign({}, person);



//Object.freeze函数
//阻止修改现有属性的特性和值,并阻止添加新属性
var a = {name : 'kong', age : 18};
Object.freeze(a);
//此时不允许添加或修改a的任何属性



//Object.is函数
//用于判断两个值是否相同
Object.is(a, b);
//返回true或false
//注意,该函数与==运算符不同,不会强制转换任何类型,应该更加类似于===,但值得注意的是它会将+0和-0视作不同值



//Object.keys函数
//用于返回对象可枚举的属性和方法的名称
var a = {name : 'kong', age : 18, func : function(){}};
Object.keys(a);
//['name', 'age', 'func']



//Object.defineProperty函数
//将属性添加到对象,或修改现有属性的特性
var a = {};
Object.defineProperty(a, 'name', {
	value : 'kong',
	enumerable : true	//该属性是否可枚举
})
//与之对应的是Object.defineProperties函数,可添加多个属性
Object.defineProperties(a, {
	name : {
		value : 'kong',
		enumerable : true
	},
	job : {
		value : 'student',
		enumerable : true
	}
})



//hasOwnProperty方法
//确定某个对象是否具有带指定名称的属性,有的话返回true,否则false
//注意,该方法不会检查对象原型链中的属性
var s = new String('123');
console.log(s.hasOwnProperty('split'));			//false
console.log(String.prototype.hasOwnProperty('split'));		//true



//isPrototypeOf方法
//确定一个对象是否存在于另一个对象的原型链中
function a(){
}
var b = new a();
console.log(a.prototype.isPrototypeOf(b));
//true
参考链接: https://msdn.microsoft.com/zh-cn/library/dn342818(v=vs.94).aspx

你可能感兴趣的:(JavaScript)