js对象

JavaScript 中的所有事物都是对象:字符串、数字、数组、日期,等等。

在 JavaScript 中,对象是拥有属性和方法的数据。

属性和方法

属性是与对象相关的值。

方法是能够在对象上执行的动作。

举例:汽车就是现实生活中的对象。

汽车的属性:

car.name=Fiat

car.model=500

car.weight=850kg

car.color=white 
汽车的方法:

car.start()

car.drive()

car.brake()
汽车的属性包括名称、型号、重量、颜色等。

所有汽车都有这些属性,但是每款车的属性都不尽相同。

汽车的方法可以是启动、驾驶、刹车等。

所有汽车都拥有这些方法,但是它们被执行的时间都不尽相同。

创建

1.使用原始的方式创建内置对象
    var myObject = new Object();
    myObject.name = “lijie”;
    myObject.age = 20;
    myObject.say = function(){...}

2.直接创建自定义对象
    var 对象名 = {属性名1:属性值,属性名2:属性值2,…….}

*3.使用自定义构造函数创建对象
    function pen(name,color,price){
        //对象的name属性
        this.name = name;
        //对象的color属性
        this.color = color;
        //对象的piece属性
        this.price = price;
        //对象的say方法
        this.say = function(){};
    }

    var pen = new pen(“铅笔”,”红色”,20);
    pen.say();

this关键字

this单词本身就是  这个 的意思
在对象的方法中使用,代表着当前这个对象
意味着当对象调用这个方法时,方法中的this就代表着这个对象

js中self和this的区别:

1.self 指当前窗口对象  (指窗口本身,返回的对象跟windows对象是一样的)
2.this 指当前对象
    <a href="javascript:self.close();" >关闭窗口</a>

    <input type="button" name="" id="btn" value="这是value" onclick="alert(this.value)">

遍历

for(var i in window){
    document.write(i+”----”+window[i]);
}
这种语句可以遍历对象中的所有属性或数组中的所有元素。

关于类型

测试类型:
1.typeof()  //global对象的其中一个方法,typeof()
2.对象.constructor; //查看当前对象的构造函数是谁

if(arr.constructor==Array){
    alert("数组"); //数组推荐用这种方法,因为typeof得到是object
}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>对象</title>
</head>
<body>
    <script>
        // 使用系统内置的方法进行定义对象
        var obj=new Object();
        // 添加成员属性和方法
        obj.name='小帅';
        obj.age=16;
        obj.chi=function(){
            console.log('我正在吃饭');
        }

        // 自定义对象
        var oBj={
            name:'富贵',
            age:58,
            he:function(){
                console.log('我正在喝饮料');
            }
        } 

        // 使用构造函数创建对象 在构造函数当中this只有实例化之后才能使用
        //   this 谁调用  this指向谁
        function demo(n,a){
            this.name=n;
            this.age=a;
            this.L=this;
            this.wan=function(){
                console.log('我正在北京玩');
                console.log(this.name);
            }

        }
        // 实例化对象 通过关键字new
        var zhangsan=new demo('zhangsan',1);
        // var wangwu=new demo('wangwu',1);
        // console.log(wangwu.L);
        // zhangsan.name="lisi";
        // var N=zhangsan.name;
        console.log(zhangsan.L);
        // zhangsan.wan();
        // console.log(N);
        //============================
        // 访问成员属性和方法
        // var N=obj.name;
        //obj.chi();
        // 修改成员属性和方法
        //obj.name='老帅';
        //console.log(obj.name);
        //===========================
        // var M=oBj.name;
        // oBj.he();
        // console.log(M);
        // oBj.name='文化';
        // console.log(oBj.name);
        ///===========================
        //删除
        delete oBj.name;
        console.log(oBj.name);

        //========查看this的指向====================
        function demo1(){
            console.log(this);
        }
        demo1();

        // 对象的遍历========================
        for(i in zhangsan){
            console.log(i);
        }

        // 查看对象构造函数
        var arr=[1,2,3];
        console.log(arr.constructor);
        console.log(zhangsan.constructor);
        console.log(obj.constructor);
    </script>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值