//函数在js中是作为一个函数对象被使用的,所以你也可以给函数加一些属性值来表达一定的含义,另外就是函数是有不同的作用域和一个很重要的参数argument的
undefined
//函数中重点要讲述的就是this、arguments、作用域和不同函数调用方式以及不同的函数创建方式
undefined
//对于函数的调用
undefined
//1、可以直接调用:foo()
undefined
//2、函数也可以作为对象上的一个方法被调用,object.method()
undefined
//3、可以作为一个构造器被调用,new Foo()
undefined
//4、可以用function.prototype上的一些属性例如call/apply/bind来调用
js 函数对象
函数调用方式:
直接调用: foo();
对象方法 : o.method();
构造器: new Foo();
call/apply/bind :func.call(o);
函数结尾没有return则返回this。如果返回的是对象,则会将对象作为构造器new一个对象进行返回。
构造函数时,返回基本类型或者不反悔,会返回this,如果返回对象则返回对象
函数调用方式
函数的不同调用方式
函数的不同调用方式
不同的调用方式
多种不同的方式
函数对象
有函数名参数列表,函数体
有return语句,没有的话会undefine
作为构造器,外部使用new调用,没有返回语句,或return基本类型的话,会将this作为返回,另返回对象的话相当于new 操作
函数的调用方式
函数构造图
函数的不同调用方法
当作为构造器的时候,new Foo(),若函数return一个基本类型,则返回一个this,若返回一个对象则是把这个返回对象作为构造器返回。
函数调用方式
函数调用方式4种
函数的不用调用方式
直接调用
对象方法
构造器
func.call/apply/bind
js 的函数也是对象
一般函数调用: 如果没有return 会在所有代码执行完之后返回一个undefined
作为构造器,外部使用new调用:如果没有return或者return类型是基本类型,会将this返回
使用new 调用函数时,如果没有return语句,或者return是基本类型的话,会将this返回,如果return是一个对象,则会返回这个对象。
1:函数4调用方式
直接调用
对象方法
构造器
call/apply/bind
函数:被定义一次,可执行和调用多次。JS中的函数也称函数对象
函数的返回值依赖return,一般的函数调用:没有return就会默认在所有代码执行完返回一个undefined;
如果作为构造器,外部使用new去调用,这样没有return语句或者return后边是基本类型的话,那么会将this作为返回;反之如果return了一个对象的话,这个对象作为new构造器的返回值。
不同的调用方式下this指向不同:
foo();直接调用
o.method();对象方法
new Foo();构造器
func.call(o);call/apply/bind
不同的调用方法,注意构造器调用及call/apply/bind的调用方法
函数讲解的内容部分
函数返回值:
①一般函数的返回值依赖return语句,没有return,默认在所有语句执行完后返回undefined,这是一般的函数调用情况;
②当作为函数构造器时,外部使用new的话,如果没有return或者return一个基本类型(undefined;null;boolean;number;string)的话,
那么会将this作为返回,反之return了一个对象的话,会将此对象作为new操作的返回值;
不同调用方式 函数
不同的调用方式:
1、直接调用 foo( )
2、作为对象的方法来调用 obj.foo( )
3、作为构造器,用new来调用 new foo( )
4、用函数原型function.prototype上的一些方法(call/apply/bind)来调用 foo.call(o)
函数作为构造函数(使用new调用),如果没有return语句,或者return后是基本数据类型,会将this作为返回值;反之如果return了对象,则以此对象为返回值。
函数的重点:
1、this
2、arguments
3、作用域
4、不同的调用方式
5、不同的创建方法
在不同的调用方式下,this指向不一样。
arguments与参数有一定的连带关系。
调用方式