JavaScript 对象和面向对象 概述
2017-03-06 17:07
211 查看
1. JS中的对象(Object)
创建空白对象:
对象里面的变量叫属性,对象外面的变量叫变量
对象里面的函数叫方法,对象外面的函数叫函数
但前提是要给对象绑定属性和方法
2. 构造函数(就是为了创建对象实例)
① 可以创建对象实例的函数,为新对象进行初始化(设置对象的属性)。
② 区别于普通函数,首字母大写。
3. 创建自定义对象
创建单个自定义对象:
创建多个自定义对象:
函数是可以重复执行的代码块,把创建对象的方法封装到函数中,然后把变化的值设计成参数
构造函数法创建自定义对象:
This
① this只出现在函数中。(arguments也只出现于函数中)
② 谁调用函数,this就指的是谁。
③ new People(); People中的this代指被创建的对象实例。
new
① 开辟内存空间,存储新创建的对象( new Object() )
② 把this设置为当前对象
③ 执行内部代码,设置对象属性和方法
④ 返回新创建的对象
4. 对象字面量
5. json
b75c
- Json由{ }和key:value以及逗号三部分组成(只有一个键值对key:value时,可以没有逗号)。
- 对象字面量定义方法和json很像,只有一点不同,json的key要求必须加“”
- json的取值有两种方式,json.属性名,或 json["属性名"]
- json中每个属性的属性值如果是数字,就是number类型,如果是字符串,就是string类型
- 如果调用一个函数后,可以使用.属性的方法获取一个值,那么他的返回值,一定是一个json
6. for...in...
注意:
如果一个对象的属性都是数值而且有length属性,遍历的时候使用 for 循环和 for in 的方式都可以;
如果一个对象的属性都是单词不是数值,在遍历时只能通过 for in 的方式。
7. 参数和传值问题
① 简单类型数据做参数,函数内部对参数的修改不影响外部变量。
简单类型传数值。
② 复杂类型数据做参数,函数内部对参数的修改会影响外部变量。
复杂类型传地址。
创建空白对象:
var obj = new Object();
对象里面的变量叫属性,对象外面的变量叫变量
对象里面的函数叫方法,对象外面的函数叫函数
但前提是要给对象绑定属性和方法
2. 构造函数(就是为了创建对象实例)
① 可以创建对象实例的函数,为新对象进行初始化(设置对象的属性)。
② 区别于普通函数,首字母大写。
3. 创建自定义对象
创建单个自定义对象:
//创建单个自定义对象 var stu = new Object(); //为该对象绑定属性 stu.name = "杨哈哈"; stu.age = 18; stu.gender = "男"; //为该对象绑定方法 stu.study = function () { console.log("我正在学习!"); }
创建多个自定义对象:
函数是可以重复执行的代码块,把创建对象的方法封装到函数中,然后把变化的值设计成参数
function createStu(name,age){ //每次调用函数,创建一个新的对象 var stu = new Object(); stu.name = name; stu.age = age; stu.study = function () { //this代表函数的调用者 console.log(this.name + ":我正在学习"); } return stu; }
构造函数法创建自定义对象:
This
① this只出现在函数中。(arguments也只出现于函数中)
② 谁调用函数,this就指的是谁。
③ new People(); People中的this代指被创建的对象实例。
new
① 开辟内存空间,存储新创建的对象( new Object() )
② 把this设置为当前对象
③ 执行内部代码,设置对象属性和方法
④ 返回新创建的对象
4. 对象字面量
var obj = {aaa: 1, bbb: 2, ccc: 3, ddd: 4};
5. json
b75c
var json = {“aaa”: 1,“bbb”: 2,“ccc”: 3,“ddd”: 4}
- Json由{ }和key:value以及逗号三部分组成(只有一个键值对key:value时,可以没有逗号)。
- 对象字面量定义方法和json很像,只有一点不同,json的key要求必须加“”
- json的取值有两种方式,json.属性名,或 json["属性名"]
- json中每个属性的属性值如果是数字,就是number类型,如果是字符串,就是string类型
- 如果调用一个函数后,可以使用.属性的方法获取一个值,那么他的返回值,一定是一个json
6. for...in...
var json = {“aaa”: 1,“bbb”: 2,“ccc”: 3,“ddd”: 4}
for(var key in json){
console.log(key);//key代表对象的所有属性
console.log(json[key]);//json[key]代表对象的所有属性值
}
注意:
如果一个对象的属性都是数值而且有length属性,遍历的时候使用 for 循环和 for in 的方式都可以;
如果一个对象的属性都是单词不是数值,在遍历时只能通过 for in 的方式。
7. 参数和传值问题
① 简单类型数据做参数,函数内部对参数的修改不影响外部变量。
简单类型传数值。
② 复杂类型数据做参数,函数内部对参数的修改会影响外部变量。
复杂类型传地址。
相关文章推荐
- JavaScript 对象和面向对象 概述
- javascript面向对象--定义对象(1)
- (三)Javascript面向对象:对象(Object)
- Java笔记2 面向对象<1>面向对象概述、构造代码块、匿名对象、this关键字等
- javascript面向对象(给对象添加属性和方法的方式)
- 21-JavaScript-面向对象-对象的属性和方法以及this
- JavaScript之面向对象的程序设计1—对象创建方式
- 面向对象的 Javascript 面向对象基础
- 面向对象 - javascript创建对象模式总结
- 黑马程序员 笔记(五)——面向对象(概述、类与对象、封装、构造函数、this)
- 黑马程序员------面向对象(No.4)(对象初始化过程、单例、继承概述、重写)
- JavaScript [面向对象] 对象创建
- 从面试题学习Javascript 面向对象(创建对象)
- 从面试题学习Javascript——面向对象(创建对象)
- Javascript面向对象全面剖析 —创建对象
- Javascript 面向对象 对象(Object)
- Javascript 面向对象 对象(Object)
- 面向对象的JavaScript(3): 函数也是对象
- javascript-基于对象or面向对象?
- 黑马程序员 Java基础<一>---> 面向对象与类之概述(匿名对象、封装、构造函数、this、静态等)