JavaScript函数有4种调用方式,每种方式的不同之处在于this的初始化

一般而言,在JavaScript中,this指向函数执行时的当前对象

如果函数不属于任何对象,那么默认为全局对象,即HTML页面本身

而浏览器页面对象是浏览器窗口对象,即window对象。此函数会自动变为window对象的函数

因此,从这个层面上来说,myFunction()和window.myFunction()是一样的

function myFunction(a, b) {
return a * b;
}
myFunction(10, 2); // myFunction(10, 2) 返回 20

全局对象:即浏览器窗口,window对象

当函数没有被自身的对象调用时,this的值就会变为全局对象

function myFunction() {
return this;
}
myFunction(); // 返回 window 对象

函数作为方法调用:

创建一个对象,包括两个属性和一个方法,通过调用这个对象来调用方法

<body>
<p id="demo"></p>
<script>
var myObject = {
firstName : "人散",
lastName : "曲终",
fullName : function(){
return this.firstName + " " + this.lastName;
}
}
document.getElementById("demo").innerHTML = myObject.fullName();
</script>
</body>

使用构造函数调用函数:

使用new关键字,则调用了构造函数

<body>
<p>该实例中, myFunction 是函数构造函数:</p>
<p id="demo"></p>
<script>
function myFunction(arg1 , arg2){
this.firstName = arg1;
this.lastName = arg2;
}
var x = new myFunction("jo","lo");
document.getElementById("demo").innerHTML = x.firstName;
</script>
</body>

作为函数方法调用函数:

  • 在JavaScript中,函数就是对象。
  • JavaScript函数作为对象有它的属性和方法。
  • call()和apply()是预定义的函数方法,可用于调用函数,两个方法的第一个参数必须是对象本身。
  • call()和apply()的区别在于第二个参数,call传入的是函数的参数,而apply传入的是一个参数数组。

闭包:可以访问上一层函数作用域里变量的函数,即便上一层函数已经关闭。

函数+函数能够访问的自由变量

最新文章

  1. TestNg依赖详解(三)------灵活的文件配置依赖
  2. 前端代码新写法——Zen Coding
  3. Java基础毕向东day04
  4. 15分钟学会git基本的操作命令
  5. HDU 5319 Painter
  6. UITextAlignmentCenter&#39; is deprecated: first deprecated in iOS 6.0
  7. Linux 命令备注
  8. [转]MFC 加载其他的应用程序
  9. iOS开发UITableViewCell的选中时的颜色设置
  10. 类作为返回类型 ,具有java特点-封装等 而且应用起来很方便。
  11. 解决方式:QSqlDatabase: an instance of QCoreApplication is required for loading driver plugins
  12. 快速压缩PNG文件在线工具
  13. [补档][NOI 2008]假面舞会
  14. 常用Java API(转)
  15. robotframework自动化系列:修改流程
  16. hicoder1142 三分求极值
  17. UVA 10891 Game of Sum
  18. 学习pthreads,使用互斥量进行同步
  19. TeamViewer 密码有关
  20. 11 个超棒的 jQuery 分步指引插件

热门文章

  1. go基础_控制语句
  2. 连接查询:inner join,left join,right join
  3. 浅谈分治 —— 洛谷P1228 地毯填补问题 题解
  4. Django Web接口开发
  5. 新手第一次在GitHub上提交代码完整教程
  6. LaunchPad
  7. 【C语言】创建一个函数,判断某一正整数是否为水仙花数,并调用这个函数找出1000以内所有水仙花数
  8. 《JavaScript高级程序设计》读书笔记(三)基本概念第三小节 String、Object类型
  9. Python - int()
  10. POJ-3821-Dining (拆点网络流)