JS对象是属性和方法的命名值的容器
他是易变的因为是通过引用寻址的
JS中除了原始值(string,number,boolean,null,undefined)之外都是对象
以名称值书写的对象类似于java中的哈希映射
对象创建方法:
1.对象文字法 var person{name;Bob;eyecoloor:blue;};
2.new 创建 var person=new object();
person.name=''bill";(添加属性)
delete person.age(删除属性)
对象方法:方法是作为属性来存储的函数定义
所以当你name=person.fullname不加(),只能得到函数定义
function(){return this.firstname+this.lastname}
如何显示对象的属性们呢?
1.按名称显示people.name
2.循环显示
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript 对象</h1>
<p>显示对象属性:</p>
<p id="demo"></p>
<script>
const person = {
name: "Bill",
age: 19,
city: "Seattle"
};
let txt = "";
for (let x in person) {
txt += person[x] + " ";
};
document.getElementById("demo").innerHTML = txt;
</script>
</body>
</html>
3.object.values() js对象转为数组
4.JSON。stringify() js对象转为字符串(不会把函数也转为字符串的)
JS引入getter和setter的好处
- 它提供了更简洁的语法
- 它允许属性和方法的语法相同
- 它可以确保更好的数据质量
- 有利于后台工作
js对象构造器
对象构造器是搞了个蓝图出来
原型继承
日期对象继承自 Date.prototype。数组对象继承自 Array.prototype。Person 对象继承自 Person.prototype。
Object.prototype 位于原型继承链的顶端:
日期对象、数组对象和 Person 对象都继承自 Object.prototype。
我们知道给构造器天价属性和方法就得直接写进构造器函数里面
但是使用Object.prototype我们可以通过原型继承来给构造器添加属性和方法
、
JS Map对象
JS Set对象
Set 是唯一值的集合。
每个值在 Set 中只能出现一次。
一个 Set 可以容纳任何数据类型的任何值。