这是我参与更文挑战的第2天 活动详情查看: 更文挑战
1、函数的arguments (参数)
会返回函数被调用时收到的参数数目
function myFunction(a, b) {
return arguments.length;
}
2、关于this
- 以对象方法来调用函数,会导致 this 的值成为对象本身。
var myObject = {
firstName:"Bill",
lastName: "Gates",
fullName: function () {
return this.firstName + " " + this.lastName;
}
}
myObject.fullName(); // 将返回 "Bill Gates"
- 构造器调用会创建新对象。 新对象会从其构造器继承属性和方法。 构造器内的 this 关键词没有值。 this 的值会成为调用函数时创建的新对象。
// 这是函数构造器:
function myFunction(arg1, arg2) {
this.firstName = arg1;
this.lastName = arg2;
}
// 创建了一个新对象:
var x = new myFunction("Bill", "Gates");
x.firstName; // 会返回 "Bill"
3、call函数(使用 call() 方法,可以编写能够在不同对象上使用的方法)
-
call()方法 的语法格式是
函数引用.call(调用者,参数1,参数2,参数3) -
调用者.函数(参数1,参数2,参数3) == 函数.call(调用者,参数1,参数2,参数3)
4、apply函数,作用和call一样
- 语法格式是
函数引用.aplly(调用者,[参数1,参数2,参数3])
5、闭包(全局变量能够通过闭包实现局部(私有)。)
闭包
1 、定义
- 函数和其周围的状态(词法环境)的引用捆绑在一起行程闭包。
- 可以在另一个作用域中调用一个函数的内部函数并访问到该函数的作用域的成员。
2、核心作用
延长了外部函数的内部的变量的作用范围
3、闭包的本质
函数在执行的时候会放到一个执行栈上,当函数执行完毕后会从执行栈上移除,但是堆上的作用域成员因为被外部引用不能释放,因此内部函数依然可以访问外部函数的成员。
4、闭包的作用
后续在写。。。。