对象

对象 (object)

《1》 为什么要用对象?

函数的参数如果特别多,可以使用参数简化。

《2》 js中对象的分类:

1 内建对象;2 宿主对象:B0M对象,DoM对象;3 自定义对象:我们自己创建的对象。

《3》常见创建对象方式:

1 对象字面量,2 new object()创建新对象,3 工厂函数创建对象,4 自定义构造函数《更多都使用》。

//    2 对象字面量
    var x1={
        //属性
        name:'小撩',
        age:24,
        sex:'女',
        //行为
        doIt:function () {
            console.log('我是扛把子!');

        }
    };
    console.log(x1);
    console.log(typeof x1);
//    3.2 new Object()创建对象

    var x1=new Object();
    x1.name='小撩';
    x1.age=24;
    x1.sex='女';
    console.log(x1);
    console.log(typeof x1);

//    3.3 工厂创建对象
    function createPerson(name,age,sex) {
        var p=new Object();
        p.name=name;
        p.age=age;
        p.name=sex;
        p.doIt=function () {
            console.log('我会写代码哟');

        }
        return p;

    };

    var xl=createPerson('小撩',20,'女');
    var dl=createPerson('大撩',30,'女');

    console.log( xl);
    console.log( dl);
    // console.log(xl === dl);
//    3.4 自定义构造函数

    function person(name,age,sex) {
        this.name=name;
        this.age=age;
        this.sex=sex;
        this.doIt=function () {
            console.log('我会写代码哟');

        }
    }
    var dl=new person('大撩',30,'女');
    var xl=new person('小撩',20,'女');

    console.log(dl, xl);
    console.log(dl === xl);

 

《4》new关键词

《1new先在内存中创建一个新的空对象
《2new会让this指向这个新对象
《3执行构造函数,给这个新对象加属性和方法
《4返回这个新对象

《5》this关键词

1》普通函数执行,内部this指向全局对象window

2》函数在定义的时候this是不确定的,只有在调用的时候才可以确定
3》如果函数作为一个对象的方法,被该对象所调用,那么函数内的this则指向该对象

4》构造函数中的this是一个隐式对象,类似一个初始化的模型,所有方法和属性都挂载到了这个隐式对象身上,
后续通过new关键字来调用,从而实现实例化。

《6》对象使用

1 遍历对象的属性<for...in...>

2 删除对象的属性<delete>

                                                                               

  

《7》

 // <1基本数据类型在内存中的存储
    var str1='小撩' ;
    var str2=str1;
    str1='itlike';
    console.log(str1);//itlike
    console.log(str2);//小撩

    //<2基本数据类型在内存中的存储
    function person(name,age,intro) {
        this.name=name;
        this.age=age;
        this.inyro=intro;
    }
    var p1=new person('小撩',30,'like it,it like!')
    var p2=p1;
    p1.name='大撩';

    console.log(p2.name);//    大撩
    console.log(p1 === p2);

//   <3 基本类型作为函数的参数
    var num1=10;
    var num2=20;
    fn(num1,num2);
    console.log(num1, num2);

    function fn(n1,n2) {
        n1*=2;
        n2/=2;
        console.log('n1=' + n1);//20
        console.log('n2=' + n2);//    10

    }

//    <4复杂类型作为函数的参数
//     function person(name,age,sex) {
//         this.name=name;
//         this.age=age;
//         this.sex=sex;
//     }

    /**
     * 普通函数
     * @param (person)person
     */
    function func(person) {
        person.name='权志龙';
    }
    var p=new person('小撩',30,'男');
    console.log(p.name);//小撩
    func(p);
    console.log(p.name);//    权志龙

 

js中对象篇的总结。

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值