7 JavaScript函数调用&this关键字&全局对象&函数调用&闭包
2024-10-08 13:55:11
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传入的是一个参数数组。
闭包:可以访问上一层函数作用域里变量的函数,即便上一层函数已经关闭。
函数+函数能够访问的自由变量
最新文章
- TestNg依赖详解(三)------灵活的文件配置依赖
- 前端代码新写法——Zen Coding
- Java基础毕向东day04
- 15分钟学会git基本的操作命令
- HDU 5319 Painter
- UITextAlignmentCenter&#39; is deprecated: first deprecated in iOS 6.0
- Linux 命令备注
- [转]MFC 加载其他的应用程序
- iOS开发UITableViewCell的选中时的颜色设置
- 类作为返回类型 ,具有java特点-封装等 而且应用起来很方便。
- 解决方式:QSqlDatabase: an instance of QCoreApplication is required for loading driver plugins
- 快速压缩PNG文件在线工具
- [补档][NOI 2008]假面舞会
- 常用Java API(转)
- robotframework自动化系列:修改流程
- hicoder1142 三分求极值
- UVA 10891 Game of Sum
- 学习pthreads,使用互斥量进行同步
- TeamViewer 密码有关
- 11 个超棒的 jQuery 分步指引插件