类 --> 对象(实例对象) -->(属性+方法)
属性:描述对象的(属性不存在输出undefined,不会报错) - 一般都是私有的
方法:对象具有的功能 - 分成主动的方法和被动的方法(事件) - 一般都是公有的
系统提供的类(构造函数) + 系统提供的对象(属性和方法)
方法和函数function的关系非常密切;方法由function来实现的。
ECMAScript 中的函数使用 function 关键字来声明,后跟一组参数以及函数体。
function:声明函数的关键字
fn:自定义函数名
():参数
{}:函数体,调用函数执行的函数体。
function fn(str) {
alert(str);
}
函数的调用:函数名()【函数一定要调用才有意义】
例:fn('aa');
//声明函数
function fn(str) {
alert(str);
}
函数的编写
一、声明式:普通函数,一定有函数名称。
function fn(参数){
函数体;
}
二、赋值式(匿名函数):函数表达式,函数赋值给变量【自执行函数、事件处理函数】
var fn = function (参数){
函数体;
}
1、函数表达式: 【自执行函数】:定义和调用在一起 - 一次性;下面是我们常见的两种自执行函数的写法。
//a.使用括号
(function() {
函数体;
})();
//b.使用感叹号
! function () {
函数体;
}();
2、函数表达式:【事件处理函数】,将一个函数名(函数体)赋值给事件(被动的方法) document:文档对象
function fn2() {
alert('点击文档触发');
}
//函数名后面带有(),刷新时函数已经触发了
document.onclick = fn();
//点击时触发
document.onclick = fn;
document.onclick = function() {
alert('点击文档触发');
}
三、函数名等于整个函数结构体(函数名就是函数指针)
alert(fn);
function fn() {
alert('普通函数,有名字');
}
函数与方法的关系:
1.函数是自由的,方法是不自由的,任何函数都是window下面的方法
2.变量是自由的,属性是不自由的,任何变量都是window下面的属性
3.函数的种类
按照大类进行划分 - (声明式【普通函数】:有名字的函数;赋值式【函数表达式】:匿名函数)
普通函数
函数表达式:将函数体赋值给变量
自执行函数:执行一次
事件处理函数:将函数体赋值给事件(被动的方法)
函数的概念:
1、函数实际上是对象, 同时也是对象的构造器。
2、每个函数都是 Function 类的实例对象, 而且都与其他对象一样具有属性和方法。
3、由于函数是对象,因此函数名实际上也是一个指向函数对象的指针( 函数名等同于函数体)
4、普通函数可以封装任意多条语句, 而且可以在任何地方、 任何时候调用执行。
构造函数:也是函数,它的特点是【首字母大写,必须new关键字来调用】。
函数不调用,当做此函数不存在。
函数名等同于函数体
typeof 函数 返回function类型。
参数的声明:
1、函数的参数包括形参和实参
形参:形参出现在函数声明中,在整个函数体内都可以使用。形参相当于定义在函数内部的变量,是形式上存在(即声明了没赋值)
实参:而实参则出现在函数调用中,实参将对应的值传递给形参。实参是具体的值。
2、函数不介意传递进来多少参数,也不会因为参数不统一而错误。
3、实际上,函数体内可以通过arguments 特殊对象来接收传递进来的参数。
arguments对象是一个类数组(类似数组)对象
类数组:一组数据(多个数组),具有length属性和索引下标取值的特点。
length:数组的长度
索引下标:默认给数组项添加索引编号,编号从0开始
函数的返回值:
函数都有一条return语句,return语句导致函数停止执行,并返回它的表达式的值给调用者。
如果return语句没有相关的表达式,则返回undefined。
函数是对象,同时也是对象的构造器
对象的属性和对象的方法
对象的概念:对象是属性的无序集合。
为什么没有方法,因为一个属性的值如果是函数,调用的时候变成方法了。
function hehe() {
console.log(1);
console.log(2);
console.log(3);
}
function fn() {
hehe(); //调用一个函数,实质上就是将函数内部的代码载入执行即可。
}
fn();
函数的好处
函数是用来帮助我们封装、 重用、 扩展及调用代码的最方便的工具!
封装:函数体里面可以放置任意条语句【将重复性代码进行整合】
重用:封装好的函数(功能),反复使用,重复使用。
扩展:函数的参数可以让函数变得更灵活,多变。
函数注意事项
函数名等于函数体
typeof 函数-- -- 函数类型为:function
声明的函数如果不调用, 函数相当于不存在;通过调用找函数。