什么是对象
1、对象拥有自己的私有属性
2、new出来的都是对象
3、不同对象不相等
/*var a = 12;
a.b = 12;
console.log(a.b);*/
/*var str = 'abc';
str.a = 10;
console.log(str.a);*/
//typeof
//function object undefined string number boolean
万物皆对象
/*var str = 'abc';
var stt = new String('abc');
var sto = String('abc');
stt.a = 10;
console.log(str);
console.log(stt.a);
console.log(typeof sto);*/
/*var num = 1;
var nuu = new Number(1);
nuu.a = 10;
console.log(nuu.a);*/
/*var a = {c:1};
var b = {c:1};
console.log(a==b);*/
引用机制
内存机制
回收机制
delete删除某个属性 = null删除整个
/*var a = [1,2,3];
var b = a;
b.push(4);
a = null;
console.log(b);*/
//var a = {c:10};
//delete a.c
/*var b = a;
b.c = 10;*/
console.log(a);
var ab = [1,2,3];
function a(arr){
arr.push(123);
}
a(ab);
console.log(ab);
面向对象
类 浏览器的分类
原型 类的prototype
原型链 继承
prototype
call 改变this指向 第一个代表当前this,从第二个参数以后代表接收的参数
apply 改变this指向 第一个代表当前this,后面参数需要放到数组里面传递
字面量 字面上展示的量
包装类 没有new的方法
面向对象最有用的就是他的私有属性
/*var json1 = new Object();
var json2 = {};
json2.a = 10;
console.log(json2.a)
console.log(json1);
console.log(json2);
var str = '123';
var str = new String('123');
var num = 1;
var num = new Number(1);
var arr = [1,2,3];
var arr = new Array(1,2,3);*/