JavaScript语言精粹学习笔记之对象

本文介绍了JavaScript的简单数据类型,包括number、string、boolean、null和undefined,并探讨了它们的特性。接着,详细阐述了JavaScript的对象,描述了对象的可变性、属性访问、引用传递以及原型链的概念。此外,还解释了如何通过原型实现对象的属性和方法继承。最后,讨论了原型链接和Object.prototype的特殊性。
摘要由CSDN通过智能技术生成

JavaScript的简单类型包括

1.数字number
	JS不分整形和浮点型,都是number类型
	两个浮点数相加,精度不够
2.字符串 string
3. 布尔值 boolean
4. null
5. undefined
以上是五种简单数据类型,其余的是复杂对象、Function、Array

研究一个前五个貌似是对象,因为他们拥有方法,但是他们是不可变的?
简单数据类型,不是对象?

JavaScript复杂类型----对象

在JavaScript中的对象是可变的键控容器,包括数组,函数,正则表达式等。
对象是属性的容器,每个属性都拥有名字和值,属性的名字可可以是包括空字符串在内的任意字符串,值可以是除undefined之外的任意值。
对象可以嵌套
        var s={
    birthday:'2001-2-9',
    sex:'boy',
    name:{
        firstname:'li',
        lastname:'shuaibi'
    }
};

检索

检索两种方式,如果检索一个并不存在的属性值则返回underfined
1、s.[“birthday”]
2、s.birthday

引用

var x=stooge;
    x.nickname='Curly';
    var nick=stooge.nickname;
    //因为x和stooge是指向同一个对象的引用,所以nick为'Curly'

对象通过引用来传递

var a={},b={};
    //a,b,c都引用一个不同空对象
    var a=b=c={};
    //a,b,c都引用同一个对象

原型

每个对象都有一个原型对象,可以从中继承属性,每个对象都连接到Object.prototype。
引用类型,隐式原型 proto 的属性值指向它的构造函数的显式原型 prototype 属性值----obj.proto=Object.prototype

使用原型的好处:当我们访问对象的一个属性或方法时,它会先在对象自身中寻找,如果有则直接使用,如果没有则会去原型对象中寻找,如果找到直接使用
以后我们创建构造函数时,可以将这些对象共有的属性和方法,统一添加到构造函数的原型对象中,这样不用分别为每一个对象添加,也不会影响到全局作用域,就可以使每个对象都具有这些属性和方法了

function gg () { }
//给gg函数的原型对象中添加一个属性 name并且值是 "张三",age值为20
gg.prototype.name = '张三';
gg.prototype.age = 20;
let g1 = new gg();
console.log(g1.age); //20

原型连接在更新时不起作用,

Object的prototype的隐式原型_proto_属性为 null,设计上是为了避免死循环而设置的, Object.prototype 的隐式原型指向 null

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值