js中函数总结(1)
8.1函数定义
js的函数可以嵌套在其他函数的定义中,这样它们就可以访问它们被定义时所处的作用域中的任何变量。意味着js函数构成了一个闭包;
function name(){}
特殊的:函数表达式有时定义之后立即被调用。var tensquared=(function(x){return x*x;}(10));
函数声明语句“被提前”到外部脚本或者外部函数作用域的顶部,即可以在定义之前出现的代码所调用;
而以表达式方式定义的函数必须要将其赋值给一个变量。以表达式方式定义的函数在定义之前无法调用;
若一个函数没有return语句则会返回undefined值
嵌套函数
注意:变量作用域的规则:它们可以访问嵌套他们(或多重嵌套)的函数的参数和变量。
函数的调用:
1作为函数 2作为方法 3作为构造函数 4通过它们的call()和apply()方法间接调用
2方法调用 即一个方法是保存在一个对象的属性里的js函数。
若有一个函数f和一个对象o和一个定义名字为m()的方法:
1使用点进行调用 定义为 o.m=f; 调用为 o.m(); 若有2个参数则为o.m(x,y);
2使用方括号(的属性访问表达式)进行属性访问:o["m"]=(x,y) a[0](z)假设a[0]是一个函数
f().m() //在f()调用结束后继续调用返回值中的方法m();
this指针时面向对象编程范例的核心: this是关键字,不是变量,也不是属性名,js不允许给this赋值
1.this没有作用域的限制,嵌套函数不会从调用它的函数中继承this。
2如果嵌套函数作为方法调用,其this值不是全局对象(非严格模式下)就是undefined(严格模式下)。
3如果嵌套函数作为函数调用,如果想要访问外部函数的this值,需要将外部的this值保存在一个变量里。通常使用self保存this;
举例子:
var o={
m:function () {
var self=this;
alert(this===o); /*true*/
f();
function f() {
alert(this===o); /*false*/
alert(self===o); /*true 外部的this只有放在变量中才可以访问*/
}
}
};
o.m();
8.2.3构造函数的调用:
凡是没有形参的构造函数都可以省略圆括号
var o=new object() ===== var o=new object;
8.2.4间接调用 使用call()和apply()
call()使用它自有的实参列表作为函数的实参,apply()方法则要求以数组的形式传入参数
js中函数总结(1)的更多相关文章
- JS中函数参数和函数返回值的理解
函数本质就是功能的集合 JS中函数是对象,因此,函数名实际上仅仅是一个指向函数对象的指针,不会与某个函数绑定,所以,JS中没有重载(重载就是通过传递不同类型的参数,使两个相同函数名的函数执行不同的功能 ...
- 关于js中函数的调用问题
js中函数的调用方法 1.直接调用 函数名(参数): 2.通过指向函数的变量去调用 例如: var myval = 函数名: 此刻 myval是指向函数的一个指针: myval(实际参数):此刻调用的 ...
- js中函数传参的情况
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- JS中函数void()
<a href="javascript:void(0)">hello</a>/* * JS中函数void()的运用大体是这种新式; * void()是运算符 ...
- 对JS中函数的理解
函数本质就是功能的集合 JS中函数是对象,因此,函数名实际上仅仅是一个指向函数对象的指针,不会与某个函数绑定,所以,JS中没有重载(重载就是通过传递不同类型的参数,使两个相同函数名的函数执行不同的功能 ...
- js中函数的参数为函数的情况即回调函数
js中函数的参数可以是数组对象也可以是函数,当参数为函数时我们叫做回调函数 //定义回调函数function B() { console.log("函数B")setTimeout( ...
- js中函数的一些理论知识
函数的一些理论知识 1. 函数: 执行一个明确的动作并提供一个返回值的独立代码块.同时函数也是javascript中的一级公民(就是函数和其它变量一样). 2.函数的 ...
- php与js中函数参数的默认值设置
php函数参数默认值设置: <?phpfunction test($val=3){ echo $val."<br/>";}test(11);test();?& ...
- JS中函数声明与函数表达式的不同
Js中的函数声明是指下面的形式: function functionName(){ } 这样的方式来声明一个函数,而函数表达式则是类似表达式那样来声明一个函数,如 var functionName ...
- JS中函数的调用和this的值
调用每一个函数会暂停当前函数的执行,传递控制权和参数给新函数.除了声明时定义的形式参数,每个函数还接收两个附加的参数:this 和 arguments. 参数this在面向对象编程中非常重要,他的值取 ...
随机推荐
- 六十.完全分布式 、 节点管理 、 NFS网关
1.安装与部署 对mapred和yarn文件进行配置 验证访问Hadoop 在六十准备好的环境下给master (nn01)主机添加ResourceManager的角色,在node1,node2, ...
- ckeditor不能粘贴word的问题如何解决
自动导入Word图片,或者粘贴Word内容时自动上传所有的图片,并且最终保留Word样式,这应该是Web编辑器里面最基本的一个需求功能了.一般情况下我们将Word内容粘贴到Web编辑器(富文本编辑器) ...
- PostMan的详细介绍
无论是接口调试还是接口测试,postman都算的上很优秀的工具,好多接口测试平台.接口测试工具框架的设计也都能看到postman的影子,我们真正了解了这款工具,才可以在这个基础上进行自己的设计和改造. ...
- jinja2-宏,include, import
一 宏 宏类似常规编程语言中的函数.它们用于把常用行为作为可重用的函数,取代 手动重复的工作.如果宏在不同的模板中定义,你需要首先使用 import,比如 {% macro input(name, v ...
- nodeJS 项目如何运行
nodeJS 项目如何运行 一.总结 一句话总结: nodejs项目根目录中用node xx.js 或是 node xx运行 打开 window的 cmd 命令窗口,使用 cd 命令跳转到 nodeJ ...
- Visual Studio Code(VS Code)命令行的使用(1)
在终端中输入如下命令,打开VS Code界面. code 在终端中输入如下命令,打印出 VS Code 命令行所支持的所有参数. code --help 在 code 命令后加上文件或者文件夹的地址, ...
- Methods for Identifying Out-of-Trend Results in Ongoing Stability Data
python机器学习-乳腺癌细胞挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?courseId=1005269003& ...
- java.util.HashTable (JDK1.8)
1.Hashtable 特性(先总结下面会详细讲的): 1.Hashtable 存储的内容是键值对(key-value)映射,其底层实现是一个Entry数组+链表. 2.Hashtable是线程安全( ...
- kotlin 委托类的初始化函数
import java.beans.AppletInitializer import kotlin.reflect.KProperty fun main(arg: Array<String> ...
- 文件上传对servlet的要求
request.getParamter(String name)方法不能再使用了 需要使用request.getInputStream()获取输入流对象然后在进行读取数据 解析数据 ServletIn ...