首页 > 其他 > 详细

对象(未完)

时间:2020-05-11 19:43:17      阅读:42      评论:0      收藏:0      [点我收藏+]

一、什么是对象?

1、对象是一种复杂型的引用类型

2、万物皆对象,除了数字,字符,布尔这种绝对值以外的所有部分都是对象,
对象是类的实例化体现,类是对象的抽象体现。

举例:

数字:

        var a=new Number(1);
        console.log(a.__proto__);
打印结果:
技术分享图片

 

 字符:

        var a="a";
        console.log(a.__proto__);

 

技术分享图片

 

 布尔值:

        var a=true;
        console.log(a.__proto__);

技术分享图片

 

 undefined:

       var a=undefined;
        console.log(a.__proto__);

技术分享图片

null:

 

         var a=null;
        console.log(a.__proto__);

 技术分享图片

 

 

NAN:


        var a=NaN;
        console.log(a.__proto__);
技术分享图片

 

 undefined和null都没有对象,和别人都不相等,console.log(undefined==null);

技术分享图片

 

 

 

 

 

3、对象是一个个体,他具备自身类的所有属性和方法。

 

4、我们曾经遇到过的对象:

var arr=new Array()

var date=new Date();

var obj=new Object();

二、

对象的新建,有以下几种方法:

1、var obj={a:1,b:2};

2、构造函数创建法var obj=new Object();

3、根据对象原型创建新的对象(以某个对象作为原型创建出新对象var obj1=Object.create(obj);

接下来对上面三个进行详解:

1、var obj={}

 var obj={
         属性:属性值,
         方法:方法函数
}

花括号在语言中是指代码块的意思,在obj也相当于一个代码块。obj自身在使用中可以完成和丰富各种代码块。

在函数中,有时候需要返回一个对象,这时候,我们通常使用花括号的形式来返回对象

function abc(){
 return {
        属性:属性值,
       方法:方法函数
 }
}

2、var obj=new Object();

obj.属性=属性值

obj.方法=方法函数

obj[属性]=属性值

obj[方法]=方法函数

中括号中的属性和方法必须是字符串,如果是变量,该内容必须是字符型变量。

var arr=new Object([])

创建数组,在javascript中数组不是单独的类型,它是由对象扩展出来的,因此,可以使用这种形式来建立数组。

3、Object.create(proto, [ propertiesObject ])

proto对象原型

propertiesObject 一组属性和值,该参数对象不能是 undefined,
另外只有该对象中自身拥有的可枚举的属性才有效,也就是说该对象的原型链上属性是无效的。

该方法可以针对已知对象创建新对象也可以创建一个空对象。

 

 

三、原型链

原型链: obj.__proto__

原型:prototype

原型链   任何一个对象都是原型和原型连接形成链式结果,这种链式结构叫做原型链
任何类型的对象最尾部的一定是object的原型
 
 
var arr=[1,2,3];
console.log(arr);

数组来源于对象

 

var div=document.querySelector("div");
console.log(div.__proto__);
div的原型链
HTMLDivElement-->HTMLElement-->Element-->Node-->EventTarget-->Object
 
 
 
综上已经对原型链有了一定的了解,那么如何使用呢 ?
 
四、原型链的作用,为什么要用它
对象的属性方法继承:
var o1={
            a:1,
            play:function(){
                console.log("play");
            }
        }

        // 将o1作为原型创建o2
        var o2=Object.create(o1);
        o2.play();
        console.log(o2.a);//调用o1当中的a属性,原因是以o1为原型创建o2,那么o2里面就有了o1的属性

        o2.b=2;//o2本身也可以创建
        o2.run=function(){
            console.log("run");
        }

    console.log(o2.a,o2.b);
    o2.play();
    o2.run();

 

    o2.a=10;
    console.log(o2);
    可以认为对象有两种属性,一种是自身的对象属性,另一种是自身原型的对象属性
    自身的对象属性简称对象属性
    自身原型的对象属性 原型属性
    通常获取对象的属性时,先查看对象属性是否存在,如果存在直接调用该属性
    如果对象属性不存在,就从原型链上距离该对象最近的一层具备该属性的原型属性获取


    如果设置属性时,不能够设置到原型链的任意一个原型属性中,只能添加到该对象的对象属性中

五、对象的方法

 

对象(未完)

原文:https://www.cnblogs.com/wjsblog/p/12859459.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!