【JavaScript】中心语法之对象

JS(JavaScript)

对象
一.对象
1.对象是什么;
明白成你所看到的任何物体独占属性而且运用要领
2.对象的分类;

  • 内置对象/原生对象;

是以ECMAScript为规范定义好的对象,可直接拿来运用

  • 宿主对象;

是以浏览器本身运转环境下供应的对象,而且才可运用

  • 自定义对象;

开发人本身建立的对象,并运用
二.建立对象;
1.对象初始化要领;
经由过程字面量建立对象

/*对象的初始化建立体式格局
var 对象名 = {
    属性名 : 属性值,
    要领名 : function(){
        要领体
    }
}
    */
var obj1 = {
    name:'犬夜叉',
    age: 16,
    sayMe :function () {
        console.log('我是犬夜叉');
    }
}

2.组织函数要领;
经由过程JS的预定义范例来制造对象

/*对象组织函数
* 应用所用援用范例建立对应对象;详细范例
  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();//Number范例
var num2 = Number();
var str = new String();//String范例
var boo = new Boolean();//Boolean范例

var obj2 = new Object();
var obj3 = new Object();
console.log(obj2);
console.log(obj3);

3.Object.create要领;
指定原型和多个指定属性对象

var obj6 = Object.create(null);
var obj7 = Object.create(obj1);

/*应用Object.create()要领建立对象
* var 对象名 = Object.create(null);建立一个空对象
  var 对象名 = Object.create(obj)
  obj- 示意另一对象
  当前建立新对象具有与obj对象雷同属性和要领
 */

三.对象的属性;
1.挪用对象的属性;
对象名.属性名;不能用庞杂定名属性称号
对象名[属性名];能用庞杂定名属性称号

var obj = {
    name : '犬夜叉',
    'Type-Content' : 'text/html',
    sayMe : function(){
        console.log('我是犬夜叉');
    }
}
/*
    对象名.属性名
      * 不适用于庞杂定名的属性称号
 */
console.log(obj.name);// 犬夜叉
// console.log(obj.Type-Content);
/*
    对象名[属性名]-通用挪用体式格局
      * 适用于庞杂定名的属性称号
 */
console.log(obj['name']);// 犬夜叉
console.log(obj['Type-Content']);// text/html

// 接见一个对象不存在的属性 -> 值为 undefined
console.log(obj.age);

2.新增对象的属性;
以两种属性示意
对象名.新的属性名 = 属性值
对象名[新的属性名] = 属性值

var obj = {
    name : '旋涡鸣人',
    sayMe : function(){
        console.log('我是旋涡鸣人');
    }
}
/*
    对象名.新的属性名 = 属性值
    对象名[新的属性名] = 属性值
 */
obj.age = 18;
console.log(obj);

/*
  空对象默许没有本身的属性和要领(父级Object)
 */
var obj1 = {};
console.log(obj1);

obj1.name = '日向雏田';
console.log(obj1);

3.修正对象的属性;

var obj = {
    name : '旋涡鸣人',
    sayMe : function(){
        console.log('我是旋涡鸣人');
    }
}
/*
    对象名.已存在属性名 = 属性值
    对象名[已存在属性名] = 属性值
 */
obj.name = '日向雏田';
console.log(obj);

4.删除对象的属性;
以delete示意删除该属性
delete 对象名.属性名
delete 对象名[属性名]

var obj = {
    name : '犬夜叉',
    sayMe : function(){
        console.log('我是犬夜叉');
    }
}
/*
    delete 对象名.属性名
    delete 对象名[属性名]
 */
delete obj.name;
console.log(obj.name);// undefined

四.对象的要领;
1.挪用对象的要领;
有两种要领示意挪用对象
对象名.要领名()
对象名[要领名]()

var obj = {
    name : '犬夜叉',
    age : 18,
    sayMe : function(){
        console.log('我是犬夜叉');
    }
}
// 对象名.要领名()
obj.sayMe();
// 对象名[要领名]()
obj['sayMe']();

2.新增对象的要领;
以function()来示意新增对象
对象名.新的要领名 = function(){}
对象名[新的要领名] = function(){}

var obj = {
    name : '旋涡鸣人',
    age : 16,
    sayMe : function(){
        console.log('我是旋涡鸣人');
    }
}
// 对象名.新的要领名 = function(){}
obj.sayYou = function(){
    console.log('你是日向雏田');
}
console.log(obj);
// 对象名[新的要领名] = function(){}

3.修正对象的要领;

var obj = {
    name : '旋涡鸣人',
    age : 16,
    sayMe : function(){
        console.log('我是旋涡鸣人');
    }
}
// 1.对象名.要领名 = function(){}
obj.sayMe = function(){
    console.log('你是日向雏田');
}
console.log(obj);
obj.sayMe();
// 2.对象名[要领名] = function(){}

4.删除对象的要领;
delete 对象名.要领名
delete 对象名[要领名]

var obj = {
    name : '犬夜叉',
    age : 16,
    sayMe : function(){
        console.log('我是犬夜叉');
    }
}
// delete 对象名.要领名
delete obj.sayMe;
// 接见对象中不存在的要领-报错(TypeError: obj.sayMe is not a function)
// obj.sayMe();
console.log(obj.sayMe);// undefined
console.log(obj);

// 以属性是不是存在的体式格局举行推断
if ('sayMe' in obj) {
    // 确认现在是个要领
    if (obj.sayMe instanceof Function) {
        obj.sayMe();// 要领挪用
    }
}
// 以上代码能够优化为以下代码
if ('sayMe' in obj && obj.sayMe instanceof Function) {
    obj.sayMe();// 要领挪用
}

// delete 对象名[要领名]
    原文作者:佐珥玎
    原文地址: https://segmentfault.com/a/1190000015996907
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞