面向对象(Object)
1. 对象的定义阐述
1.1 创建空白对象
var obj = new Object();
1.2 构造函数
- 可以创建对象实例的函数
- 区别于普通函数,首字母大写
1.3 构造函数
- This
- This 只出现在函数中
- 谁调用函数,this就指的是谁
- new People( ); people中的this代指被创建的对象实例
- new
- 开辟内存空间,存储新创建的对象(new Object)
- 把this设置为当前对象
- 执行内部代码,设置对象属性和方法
- 返回新创建的对象
1.4 属性绑定
- 对象名.属性
- 对象名[变量名] 或者 对象名[值]
1.5 进制转换
- parseInt(111,2); // 2进制的111转换成十进制 为7
一个参数 取整,两个参数进制转换
任意进制转换成十进制 - 12.toString(16 ); //十进制的12转换成16进制 为c
无参转换成字符串, 带参进制转换
十进制转换成任意进制 - 十进制的值 = 位值进制(位数-1) +位值进制(位数-1) +位值*进制(位数-1)…………
2. 对象和面向对象
2.1 对象字面量
- 对象字面量就是一个{ };而里面的属性和方法是以: 形式对应表现的. (键值对) * 示例代码
var obj1 = new Object();
console.log(obj1);
var obj2 = {aaa:obj1,name:"张三","age":18,sayHi: function () {
console.log(1);
}};
console.log(obj2);
obj2.sayHi();
2.2 JSON
json和对象(对象字面量)的区别仅仅在于,json的key键值对应中的键必须带有”“
“`var json = {“name”:”拴住”,”age”:18,”arr”:[1,2,3]};对象本身没有length,所以不能用for循环遍历
* json有{ }和key:value 以及逗号组成三部分(只有一个键值对key:value时,可以没有逗号)
###2.3 for...in...
* 对象本身没有length所以不能用for 循环遍历,要用for...in...循环
* 示例代码
Var json = {“aaa”: 1,“bbb”: 2,“ccc”: 3,“ddd”: 4}
for(var key in json){
//key代表aaa,bbb…..等
//json[key]代表1,2,3….等
}
“`
2.4 参数和传值的问题
简单类型数据做参数,函数内部对参数的修改不影响外部变量
简单类型传数值
复杂类型数据做参数,
复杂类型传地址 (修改的同一片内存空间)
当你向修改成员变量中的简单数据类型时,不要通过参数传递,要在函数中直接修改。