【阅读】《head first html5》第四章——javascript函数和对象
来源:互联网 发布:防水纹身贴淘宝 编辑:程序博客网 时间:2024/06/07 12:33
- 要创建一个函数,要使用function关键字
- 函数可以是命名函数,也可以是匿名的
- 函数的命名规则与变量命名规则相同
- 函数体放在大括号之间,包含完成函数工作的具体语句
- 函数可以用return语句返回一个值
- 要调用一个函数,需要使用函数名,并传入它需要的所有实参
- javascript使用传值的方式传递函数
- 传递一个对象作为一个实参时,比如dog,形参会得到这个对象引用的一个副本(
function student(name, age, height) {this.name = name;this.age = age;this.height = height;}window.onload = function(){var man = new student("小明", 21, 170);alert(man.name);test(man);alert(man.name);};function test(student) {student.name = "小红";student.age = 18;}
以上先输出小明,之后输出小红;这与java是类似的,java要实现上面的例子可以这样public class Text {public static void main(String[] args) {Student student = new Student("小明", 18, 170);System.out.println(student.name);test(student);System.out.println(student.name);}static class Student {String name;int age;double height;public Student(String name, int age, double height) {this.name = name;this.age = age;this.height = height;}}public static void test(Student student) {student.name = "小红";}}
) - 函数中定义的变量,包括形参,都称为局部变量
- 函数外定义的变量称为全局变量
- 局部变量在定义该变量的函数之外不可见(就是不能使用到那个变量)这称为变量的作用域
- 如果声明一个局部变量时与一个全局变量同名,这个局部变量就会遮蔽全局变量(优先使用局部变量)
- 从页面链接到javascript文件时,所有全局变量都定义在同一个全局空间中。
- 如果赋一个新变量而没有使用var关键字,这个变量就是全局的,即使在一个函数中首次赋值(如果你的变量是声明在函数中的那它的作用域还是在那个函数中,个人不是很理解这句话)
- 函数也是值,可以赋给变量、传递给其他函数、存储在数组中,还可以付给对象属性
- 对象是属性的集合
- 可以使用点记法或中括号记法访问对象的属性
- 如果使用[]记法,要把属性名作为一个串用引号引起来,例如myObject["name"]。
- 可以改变一个属性的值、删除属性(delete people.name)或者想对象增加新属性
- 可以使用一个for-in循环枚举对象的的属性
- 赋给一个对象属性的函数称为方法。
- 方法可以使用一个特殊的关键字this来引用调用这个方法的对象(this就是它本身)
- 构造函数是创建对象的函数
- 构造函数的任务是创建一个新对象,并初始化这个对象的属性
- 要调用一个构造函数创建对象,需要使用new关键字。例如new Dog();
- windows是全局对象(也就是说有的地方你不加windows实际上它自己就帮你加了,比如windows.alert("")==alert(""));
- document是windows的一个属性
- document.getElementById方法会返回一个元素对象。
注意:
- 在写方法的形参时,不需要在参数前加var,就算那个是参数是Array也不需要
- 如果有同名的函数,将使用较后面声明的那个,哪怕是参数不同(这点与java不同)
- 创建对象的时候要注意不同属性之间不是用分号而是用逗号间隔的
var man = {name: "小刚",age: 19}
- 使用for..in语句遍历的时候要这样
var students = new Array("小明","小强","小红","小白");for(index in students) {alert(students[index]);}
这里的index是0,1,2.3,不是像java那样直接把姓名取出来得 - 删除对象的属性时,哪怕这个对象根本没有这个属性,他也可以返回一个true
var a = new people("小明", "男", 19);if(delete a.height) {alert("OK");} else {alert("No OK");}
这样输出的是OK,就算people中没有height这个属性
0 0
- 【阅读】《head first html5》第四章——javascript函数和对象
- 【阅读】《head first javascript》第四章——决策
- 【阅读】《head first html5》第二章——javascript和DOM
- 【阅读】《Head First Javascript》第六章——函数
- 【阅读】《head first html5》第十章——《运用javascript》(实际上的javascript线程)
- 【阅读】《head first jquery》第四章——函数与事件
- 【阅读】《Head First JavaScript》第九章——为数据带来生命(对象)
- 【阅读】《Head First JavaScript》第十章——创建自定义对象
- 【阅读】《head first html5》第一章——认识html5
- 【阅读】《head first javascript》第二章——存储数据
- 【阅读】《Head First javascript》第三章——探索客户端
- 【阅读】《Head First Javascript》第五章——循环
- 【阅读】《Head First JavaScript》第十一章——除错
- 【阅读】《head first jquery》第六章——jquery和javascript
- 【阅读】《Head First HTML 与 CSS》第四章——连接起来
- 【阅读】《Head First HTML 与 CSS》第12章——HTML5标记
- 【阅读】《head first html5》第三章——事件与处理程序
- 【阅读】《head first html5》第九章——在本地存储
- 关闭redis
- javascript基础(二)
- kill命令的误解
- hdu 1875 畅通工程再续(kruskal算法计算最小生成树)
- The Pilots Brothers' refrigerator-DFS路径打印
- 【阅读】《head first html5》第四章——javascript函数和对象
- Android实战简易教程-第二十二枪(基于Baas的用户注册功能)
- 浅谈BFC和IFC
- programming-challenges Ones (110504) 题解
- 嵌入式linux之定时器防抖
- 2014.4新版uboot启动流程分析
- Servlet一个最简单的例子(一)
- 计蒜客第22题---排序后的数组删除重复数字
- Python入门教程-13 for-in