犀牛书重读笔记(二)
JavaScript中的对象
JavaScript中的对象是一种集合,它将很多值聚合在一起,可以通过名字访问这些值。对象也可以看做属性的无序集合,每个属性都是键值对,属性名是字符串。所以也可以吧对象看成字符串到值的映射。
1、es5中的创建对象
在es5中,创建对象需要的是new关键字或Object。create()。也可以省略new,直接var a = {}。
1.1、 es5中的继承
直接继承
function Super(){ this.val = 1; this.arr = [1]; } function Sub(){ // ... } Sub.prototype = new Super(); // 核心 var sub1 = new Sub(); var sub2 = new Sub(); sub1.val = 2; sub1.arr.push(2); alert(sub1.val); // 2 alert(sub2.val); // 1 alert(sub1.arr); // 1, 2 alert(sub2.arr); // 1, 2 通过构造函数
function Super(val){ this.val = val; this.arr = [1]; this.fun = function(){ // ... } } function Sub(val){ Super.call(this, val); // 核心 // ... } var sub1 = new Sub(1); var sub2 = new Sub(2); sub1.arr.push(2); alert(sub1.val); // 1 alert(sub2.val); // 2 alert(sub1.arr); // 1, 2 alert(sub2.arr); // 1 alert(sub1.fun === sub2.fun); // false1.2、 es6的继承 class Animal{
//构造函数
constructor(props){
this.name=props.name||'未知';
}
eat(){
alert(this.name+"在吃东西...");
}
}
//class继承
class Bird extends Animal{
//构造函数
constructor(props){
//调用实现父类的构造函数
super(props);
this.type=props.type||"未知";
}
fly(){
alert(this.name+"在飞...");
}
}
2、属性的查询
实现对象中属性的查询有两种方式,一种是通过.来查询,另哟中是用[]来查询,但是对于[]来说,中间的值必须是字符串。
3、属性的监测
通过
'x' in o
监测 返回一个布尔值
数组
join()
用于将数组转化成字符串
var a = [1,2,3]
a.join() //'1,2,3'
a.join('') // '123'
reverse()
用于将数组颠倒
var a = [1,2,3]
a.recerse().join() //'3,2,1'
sort()
用于排列数组
concat()
创建并返回一个新数组
slice()
裁剪数组 可以用负数
splice()
裁剪数组 不能用负数
pop() push()
数组删减操作,从后往前
unshift() shift()
数组删减操作,从前往后

浙公网安备 33010602011771号