手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >javascript中Object使用详解
javascript中Object使用详解
摘要:复制代码代码如下:functionforEach(o){varhtml="";for(variino){html+=i+"="+o[i]+"...

复制代码 代码如下:

function forEach(o){

var html ="";

for(var i in o){

html += i+"="+o[i]+" ";

}

console.log(html);

console.log(o);

}

//1

//Object.create(proto)

//Object.create(proto,descriptors)

//使用指定的原型和属性来创建一个对象

//参数:

//proto:新创建对象的原型,可为null

//descriptors:一个可选对象,把属性名映射到属性描述符

//返回一个新创建的对象,继承自proto,同时拥有descriptors所秒速的属性。

复制代码 代码如下:

var obj = Object.create({x:1,y:2},{

z:{value:3,writable:true,enumerable:true,configurable:true}

});

forEach(obj)

obj.z=5

console.log(obj)

console.log("=====================================================")

//2

//Object.defineProperties(o,descriptors)

//创建或配置对象的多个属性

//参数:

//o:要在其上创建或者配置属性的对象

//descriptors:将属性名映射到属性描述符的对象

//返回对象o

复制代码 代码如下:

Object.defineProperties(obj,{

a:{value:"a",writable:false,enumerable:true,configurable:true},

b:{value:"b",writable:false,enumerable:true,configurable:true}

})

forEach(obj);

console.log("=====================================================")

//3

//Object.defineProperty(o,name,desc)

//创建或配置对象的一个属性

//参数:

//o:将在其上创建或配置属性的对象

//name:将创建或配置的属性名字

//desc:一个属性描述符对象,描述要创建的新属性或对现有属性的修改

//返回对象o

复制代码 代码如下:

Object.defineProperty(obj,"c",{value:"c",writable:false,enumerable:false,configurable:true})

forEach(obj);

console.log("=====================================================")

//4

//Object.freeze(o)

//将一个对象设为不可改变,不会影响继承属性

//参数:

//o:要冻结的对象

//返回 true|false

复制代码 代码如下:

var p = {x:1,y:2}

Object.freeze(p);

p.x =2;

console.log(p);

console.log(Object.isFrozen(p)) //true,一旦冻结 无法解冻

console.log("=====================================================")

//5

//Object.getOwnPropertyDescriptor(o,name)

//参数:

//o:一个对象

//name:待查询的属性名

//查询一个属性的特性

//返回对象指定属性的一个属性描述符对象,如果不存在指定属性则返回undefined.

/*

属性描述符就是一个普通的javascript对象,描述某个对象的特性,有二种javascript属性。数据属性有一个值以及三个性质:可枚举性(enumerable)、

可写性(writable)、以及可配置性(configurable).访问器属性(accessor property)有一个getter和/或setter方法,以及可枚举性。

数据属性的描述符:

{

value:任意javascript值,

writable: true|false,

enumerable: true|false,

configurable:true|false

}

访问器属性的描述符:

{

get: function 或 undefined :替换属性值

set: function 或 undefined :替换可写性

enumerable:true|false,

configurable:true|false

}

*/

复制代码 代码如下:

var o5 = Object.getOwnPropertyDescriptor(obj,"c");

console.log(o5);

forEach(o5);

console.log("=====================================================")

//6

//Object.getOwnPropertyNames(o)

//返回非继承属性的名字

//参数:

//o:一个对象

//返回一个包含o的所有非继承属性的名字,包括哪些不可枚举的属性。{enumerable:false}

复制代码 代码如下:

var o6 = Object.getOwnPropertyNames(obj);

console.log(o6);

console.log("=====================================================")

//7

//Object.getPrototypeOf(o)

//参数:

//o:一个对象

//返回一个对象的原型

复制代码 代码如下:

var o7 =Object.getPrototypeOf(obj);

console.log(o7);

console.log("=====================================================")

//8

//Object.hasOwnProperty(propname);

//参数:

//propname包含对象的属性名的字符串

//检查一个属性是否是继承的

//返回true|false

复制代码 代码如下:

console.log(obj.hasOwnProperty("x")); //=>false

console.log(obj.hasOwnProperty("z")); //=>true

console.log("=====================================================")

//9

//Object.isExtensible(o);

//判断某个对象上是否可以添加新属性

//参数:

//o:待检查可扩展性的对象

//返回 能添加为true|不能为false

//描述:所有的对象在创建的时候都是可扩展的,直到他们被传入 Object.preventExtensions(o) Object.seal(o) 或 Object.freeze(o);

复制代码 代码如下:

console.log(Object.isExtensible(obj)); // =>true

//Object.preventExtensions(obj)//将它设置为不可扩展

//console.log(Object.isExtensible(obj)); //=>false

console.log("=====================================================")

//10

//Object.isFrozen(o)

//判断对象是否不可改变

//参数:

//o:待检查的对象

//如果o已冻结并不改变则为true;否则为false;

复制代码 代码如下:

console.log("=====================================================")

//11

//object.isPrototypeOf(o)

//判断当前对象是否为另一个对象的原型

//参数:

//o:所有对象

//如果object是o的原型 则为true,如果o不是一个对象或者object不是o的原型 则为false.

复制代码 代码如下:

var o = new Object();

Object.prototype.isPrototypeOf(o) // true

Array.prototype.isPrototypeOf([1,2]) //true;

Object.prototype.isPrototypeOf(Function.prototype) //true

console.log("=====================================================")

//12

//Object.isSealed(o)

//判断一个对象的属性是否可添加或删除

//参数:

//o:待检查的对象

//如果o是封闭的则为true,否则为false.

//如果不可以向一个对象添加新的(非继承)属性,并且现有的(非继承)属性不可删除,则是封闭的。

//封闭一个对象常用的方法是Object.seal(o) 或 Object.freeze(o)

console.log("=====================================================")

//13

//object.keys(o)

//返回自由的可枚举属性名

//参数:

//o:一个对象

复制代码 代码如下:

console.log(Object.keys({x:1,y:2}) ) //=>[x,y]

console.log("=====================================================")

//14

//Object.preventExtensions(o)

//禁止在一个对象上添加新的属性

//参数:

// o:待设置可扩展的对象

//一旦设为不可不可扩展,它就再也不能改为可扩展

console.log("=====================================================")

//15

//object.propertyIsEnumerable(propname)

//检测某个属性是否在for/in 中 循环可见

//参数

//propname:包含对象的指定属性名的一个字符串

//如果对象有一个名为propname的非继承属性,并且该属性可以枚举,则返回true.

复制代码 代码如下:

var o15 = new Object();

o15.x = 15;

o15.propertyIsEnumerable("x"); //true;

o15.propertyIsEnumerable("y"); //false;

o15.propertyIsEnumerable("toString"); //false;

console.log("=====================================================")

//16

//Object.seal(o)

//阻止添加或删除对象的属性

//参数

//o:待封闭的对象

//返回处于封闭状态的参数对象o

//17

//Object.toLocaleString()

//返回对象本地的本地化字符串标示

//Object类提供的默认的toLocaleString()方法只是简单的调用toString()方法。

//不过要注意,其他类(Array、Date、Number等)都各自定义自己的这个方法的版本。用于执行本地化字符串转换。定义自己的的类时,可能也需要覆盖这个方法。

//18

//object.toString()

//定义一个对象的字符串表示形式

//在javascript程序中一般不会经常显示的调用toString()方法。一般情况下,在对象中定义这个方法,系统会在需要时自动调用它以便将该对象装换成字符串。

//19

//Object.valueOf()

//给定对象的原始值

//返回 与指定对象关联的原始值,如果存在这样一个值的话,如果没有与改对象关联的值,则返回对象本身

【javascript中Object使用详解】相关文章:

Javascript中For In语句用法实例

javascript操作ul中li的方法

JavaScript Date对象详解

javascript中DOM复选框选择用法实例

简介JavaScript中toUpperCase()方法的使用

Javascript 高阶函数使用介绍

JavaScript中的lastIndexOf()方法使用详解

javascript正则表达式总结

理解javascript封装

详谈javascript中的cookie

精品推荐
分类导航