本篇文章给大家带来的内容是关于js对象是什么?js对象的介绍(附代码) ,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
对象是什么
在JavaScript中,一个对象就像一个单独拥有属性和类型的实体。一个杯子作为一个对象,杯子有颜色、重量等属性。同样,JavaScript对象也有属性定义它的特征。
方法是关联到某个对象的函数,或者说,一个方法是一个值为某个函数的对象属性。
对象可以分为以下几类
内置对象/原生对象
就是JavaScript语言预定义的对象
宿主对象
是JavaScript运行环境提供的对象
自定义对象
就是开发人员自主创建的对象
Object对象
Object类型是引用类型。但Object类型是所有JavaScript中所有类型的父级(所有类型的对象都可以是Object的属性和方法)
创建对象
/*
* 1. 对象的初始化器创建方式
* var 对象名={
* 属性名 : 属性值
* 方法名 : function{
* 方法体
* }
* }
*/
var obj = {
name : '九筒',
age : 2,
sayYou : function () {
console.log('火锅')
}
};
/* 2. 对象的构造函数方式
* * 利用所有的引用类型创建对应的对象->具有具体的类型
* var num = new Number;//number类型
* var str = new String;//string类型
* var boo = new Boolean;//boolean类型
* * 利用Object作为构造函数创建对象
* var 对象名 = new Object();
* var 对象名 = Object();
*/
var num = new Number();
var str = new Storage();
var boo = new Boolean();
var obj2 = new Object();
var obj3 = Object();
/* 利用Object.create创建对象
* var 对象名 = Object.create(null) -> 创建一个空对象
var 对象名 = Object.create(obj)
* obj - 表示另一个对象
* 特点 - 当前创建的新对象拥有与obj对象相同的属性和方法*/
var obj4 = Object.create(null);
var obj5 = Object.create(obj);对象的属性
定义对象的属性
对象的属性就像是附加到对象上的变量
/*对象介意定义多个属性
* 属性之间使用逗号分开*/
var obj = {
name : '吴凡',
age : 23,
book : function () {
console.log('暗毁')
}
};调用对象的属性
/* 调用对象的属性
* 对象名.属性名
* 不适用于复杂命名的属性名称*/
console.log(obj.name);
/* 对象名[属性名]-通用方式
适用于复杂命名的属性名称
* */
console.log(obj['name']);//属性名是字符串形式新增、删除、修改对象的属性
var obj = {
name : '火锅',
variety : '比熊',
age : function () {
console.log('3')
}
}
/* 新增对象的属性
* 1对象名.新的属性名 = 属性值
* 2对象名[新的属性名] = 属性值*/
obj.col='白色';
console.log(obj.col);//白色
/*删除对象的属性
* delete 对象名.属性名
* delete 对象名[属性名]*/
delete obj.col
console.log(obj.col);//undefined
/*修改对象的属性
* 对象名.已存在的属性名 = 属性值
* 对象名[已存在的属性名] = 属性值*/
obj.name = '九筒';
console.log(obj.name);//九筒检测对象的属性
var obj = {
name : '火锅',
variety : '比熊',
age : function () {
console.log('3')
}
};
console.log(obj.name)
/* 1. 判断对象的属性值是否为undefined*/
if (obj.name !==undefined){
console.log('obj对象name属性存在')
}else{
console.log('obj对象name属性不存在')
}
/* 2. 判断对象的属性值,先转换为boolean类型*/
if (obj.name){
console.log('obj对象name属性存在')
}
/* 3. 利用in关键字进行判断*/
if ('name' in obj){
console.log('obj对象name属性存在')
}else{
console.log('obj对象name属性不存在')
}
/* 4. Object类型提供了hasOwnProperty()方法*/
if (obj.hasOwnProperty('name')){
console.log('obj对象name属性存在')
}else{
console.log('obj对象name属性不存在')
}便利属性
var obj = {
name : '小薄荷',
age : '0.3',
variety : function () {
console.log('萨摩耶')
}
};
// 1.for...in语句
for (var objAttr in obj) {
// 通过对象属性或方法对应的值的类型进行区别
if (obj[objAttr] instanceof Function) {
// 当前是对象的方法
obj[objAttr]();
} else {
// 当前是对象的属性
console.log(obj[objAttr]);
}
}
// 2.Object类型提供了keys()方法 - 只能遍历可枚举的属性
var arr = Object.keys(obj);
for (var v in arr) {
var objAttr = arr[v];
// 通过对象属性或方法对应的值的类型进行区别
if (obj[objAttr] instanceof Function) {
// 当前是对象的方法
obj[objAttr]();
} else {
// 当前是对象的属性
console.log(obj[objAttr]);
}
}
// 3.Object类型提供了getOwnPropertyNames()方法 - 包括不可枚举的属性
var arr = Object.getOwnPropertyNames(obj);
for (var v in arr) {
var objAttr = arr[v];
// 通过对象属性或方法对应的值的类型进行区别
if (obj[objAttr] instanceof Function) {
// 当前是对象的方法
obj[objAttr]();
} else {
// 当前是对象的属性
console.log(obj[objAttr]);
}
}对象的方法
调用、新增、修改、删除对象的方法
调用、新增、修改、删除对象的方法和属性基本一样
var obj = {
name : '火锅',
variety : '比熊',
age : function () {
console.log('3')
}
}
/*调用对象的方法*/
// 1.对象名.方法名()
obj.sayMe();
// 2.对象名[方法名]()
obj['sayMe']();
/*新增对象的方法*/
// 1.对象名.新的方法名 = function(){}
obj.name = function(){
console.log('九筒');
}
console.log(obj);
// 2.对象名[新的方法名] = function(){}
/*修改对象的方法*/
// 1.对象名.方法名 = function(){}
obj.name = function(){
console.log('九筒');
}
// 2.对象名[方法名] = function(){}
/*删除对象的方法*/
//1.delete 对象名.方法名
delete obj.sayMe;
// 访问对象中不存在的方法 -> 报错(TypeError: obj.sayMe is not a function)
// obj.sayMe();
// 2.delete 对象名[方法名]相关推荐:
nodejs中http代理库http-proxy中常见的问题分析
以上就是js对象是什么?js对象的介绍(附代码)的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号