JavaScript连载19-this关键字、对象的增删改查

一、this的指向
1.普通函数执行,内部this是指向全局对象window;
2.函数在定义的时候this是不确定的,只有在调用的时候才可以确定;
3.如果函数作为一个对象的方法,被该对象所调用,那么函数内的this则指向对象;
4.构造函数中的this是一个隐式对象,类似一个初始化的模型,所有方法和属性都挂载到了这个隐式对象身上,后续通过new关键字来调用,从而实现实例化。
我们分别举例:

<script>
    //1.普通函数执行
    var str = "张三";
    function func() {
        console.log(this);//应该是全局window
        console.log(this.str);
        console.log("===============");
    }
    func();
    //2.对象
    var obj = {
        name : "xiaolaio",
        func:function () {
            console.log(this);
            console.log(this.name);
        }
    }
    obj.func();
    console.log("===================");
    //3.构造函数
    function Fn() {
        this.name = "xiaohu";
        this.age = 45;
        console.log(this);
    }
    //这个是函数调用,里面的this是window
    Fn();
    //这个就是构造函数调用,里面的是对象
    var p = new Fn();
    console.log("======================");
</script>

19.1

二、对象的使用(增删改查,遍历)

<script>
    //1.遍历对象的属性
    var x1 = {
        //属性
        "name":"xiaoming",
        "age":23,
        "sex":"male",
        "dolt":function () {
            console.log("我是code man");
        }
    }
    //访问对象的属性
    console.log(x1.name);
    console.log(x1["name"]);//里面必须是字符串
    console.log("===============");
    //遍历对象for...in...
    //使用for循环是不管用的
    for(var key in x1){
        console.log(key);
        console.log(x1[key]);
    }
    console.log("====================");
    //2.删除对象的属性,delete关键字
    delete x1.age;
    console.log(x1.age);//undefined
    console.log("==========================");
    //3.赋值(新增,修改都是支持的)
    x1.age = 89;
    console.log(x1.age);
</script>

19.2
三、基本类型和引用类型在堆栈中表示
1.基本数据类型又叫做值类型,在存储的时候,变量存储的是值本身,因为此叫做值类型。
String Number Boolean Null Undefined
2.复杂数据类型,在存储时变量中存储的仅仅是地址(引用),因此叫做引用数据类型。
3.二者的区别:
JS中的变量都是存储在栈内存中的,基本数据类型的值直接在栈内存中存储,值与值之间是独立存在的,修改一个变量不会影响到其他变量;
对象是保存在堆内存中的,每创建一个新的对象,就会在堆内存中开辟出一个新的空间,而变量存储的是对象的内存地址(对象的引用)。
四、源码:
D19_1_newOfOrigin.html
D19_2_UsageOfObject.html
地址:
https://github.com/ruigege66/JavaScript/blob/master/D19_1_newOfOrigin.html
https://github.com/ruigege66/JavaScript/blob/master/D19_2_UsageOfObject.html
2.CSDN:https://blog.csdn.net/weixin_44630050
3.博客园:https://www.cnblogs.com/ruigege0000/
4.欢迎关注微信公众号:傅里叶变换,个人账号,仅用于技术交流,后台回复“礼包”获取Java大数据学习视频礼包
19.3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值