JavaScript学习总结笔记之对象、包装类、原型、原型链

前言
JavaScript总结笔记篇仅是记载本人学习过程中的一些总结,为了梳理一下知识点,督促自己不断加强学习。文中有些是源自官网,有些是搜集资料,有些是个人观点,难免存在某些知识点疏漏或者是有错误的地方,如果错误之处,希望看到的小伙伴能及时提个醒,避免误导其他小伙伴,也希望我的总结能帮助到正在学或者是将要学习JavaScript的小伙伴们!大家一起努力,早日成为IT界的大神!

一、对象

(一)对象的创建方法
1.var obj = {}; plainObject 对象字面量
2.构造函数
(1)系统自带的构造函数

new Object() Array() Number()
自定义

(2)构造函数的内部原理

a.在函数体最前面隐式的加上this = {}
b.执行this.xxx = xxx
c.隐式的返回this

3.Object.create

二、包装类

1.new String()
2.new Boolean()
3.new Number()

原始值不能有属性和方法

原始值(栈数据):Number、String、Boolean、undefined、null
引用值(堆数据):array、object、function

undefined、null不能有属性和方法,会报错。

var num = new Number(123);
var str = new String('abc');

        /* 
            num.abc = 123;
            访问num.abc  // 结果为123

            通过new,num、str可以有属性和方法
         */
        
        // 包装类
        var num = 123;
        num.len = 3;
        // 原始值不能有属性和方法,
        // 但系统会自动转化成 -- > new Number(123).len = 3; -- > delete
        
        // new Number(123).len -- > undefined
        console.log(num.len);
        
        var str = "abc";
        str += 1;  // str = "abc1"
        var test = typeof(str); // test = "string"
        if (test.length == 6) {
            test.sign = "typeof的返回结果可能为string";
            /* 
            test为原始值,执行test.sign 系统自动转换成
            -- > new String(test).sign = "xxxx"; 
            */
        }
        console.log(test.sign);
        /* 
            new String(test).sign -- > 结果为undefined
         */

三、原型 Person.prototype

(一)定义

原型是function 对象的一个属性,它定义了构造函数制造出对象的公共祖先。通过该构造函数产生的对象,可以继承该原型的属性和方法。原型也是对象。

(二)利用原型特点和概念,可以提取公有属性
(三)对象如何查看原型 ——> 隐式属性_proto_
(四)对象如何查看对象的构造函数 ——> constructor

四、原型链

(一)如何构成原型链
(二)原型链上属性的增删改查
(三)绝大多数对象的最终都会继承自Object.prototype

除了undefined和null

(四)Object.create(原型/null)

*小技巧:想要实现方法的连续调用,用return this

var xu = {
run : function (){
console.log("cool");
return this;
},
jump : function (){
console.log('jump');
return this;
}
}

xu.run().jump();

五、区分数组和对象的三种方法:

[].constructor //ƒ Array() { [native code] }
var obj = {};
obj.constructor//ƒ Object() { [native code] }
123

[] instanceof Array //true
var obj = {};
obj instanceof Array //false
123

Object.prototype.toString.call([])
//"[object Array]"
Object.prototype.toString.call(123)
//"[object Number]"
Object.prototype.toString.call({})
//"[object Object]"

文章持续更新中,敬请关注,谢谢阅读!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值