JS函数学习

一:函数

1.声明

function functionName(parameters) {
要执行的代码
}

举例:

function myFunction(a, b) {
 return a * b;
}

2.自调用函数

函数表达式可以作为“自调用”。

自调用表达式是自动被调用(开始)的,在不进行调用的情况下。

函数表达式会自动执行,假如表达式后面跟着 ()。

您无法对函数声明进行自调用。

您需要在函数周围添加括号,以指示它是一个函数表达式:

实例

(function () {
var x = "Hello!!";      //我会调用我自己
})();

3.函数可用作值

JavaScript 函数可被用作值:

实例

function myFunction(a, b) {
return a * b;
}
var x = myFunction(4, 3);

4.JavaScript 函数可用在表达式中:

实例

function myFunction(a, b) {
return a * b;
}
var x = myFunction(4, 3) * 2;

5.函数是对象

JavaScript 中的 typeof 运算符会为函数返回 "function"。
但是最好是把 JavaScript 函数描述为对象。
JavaScript 函数都有属性和方法。
arguments.length 会返回函数被调用时收到的参数数目:
toString() 方法以字符串返回函数:

二:函数参数

functionName(parameter1, parameter2, parameter3) {
要执行的代码
}

函数参数(parameter)指的是在函数定义中列出的名称。
函数参数(argument)指的是传递到函数或由函数接收到的真实值。
如果函数调用的参数太多(超过声明),则可以使用 arguments 对象来达到这些参数。
arguments 对象
JavaScript 函数有一个名为 arguments 对象的内置对象。
arguments 对象包含函数调用时使用的参数数组。

实例

x = findMax(1, 123, 500, 115, 44, 88);
function findMax() {
var i;
var max = -Infinity;
for (i = 0; i < arguments.length; i++) {
    if (arguments[i] > max) {
        max = arguments[i];
    }
}
return max;
}

三:函数调用

1.以函数形式调用函数

实例

function myFunction(a, b) {
return a * b;
}
myFunction(10, 2);  

2.作为方法来调用函数

在 JavaScript 中,您可以把函数定义为对象方法。

下面的例子创建了一个对象(myObject),带有两个属性(firstName 和 lastName),以及一个方法(fullName):

实例

var myObject = {
firstName:"Bill",
lastName: "Gates",
fullName: function () {
    return this.firstName + " " + this.lastName;
}
}
myObject.fullName();         // 将返回 "Bill Gates"

3.通过函数构造器来调用函数

如果函数调用的前面是 new 关键字,那么这是一个构造函数调用。

它看起来像你创建一个新的函数,但由于 JavaScript 函数是对象,你实际上创建一个新对象:

实例
// 这是函数构造器:

function myFunction(arg1, arg2) {
this.firstName = arg1;
this.lastName  = arg2;
}

// 创建了一个新对象:

var x = new myFunction("Bill", "Gates");
x.firstName;                   

四:JavaScript call() 方法

1.通过 call(),您能够使用属于另一个对象的方法。

本例调用 person 的 fullName 方法,并用于 person1:

实例

var person = {
fullName: function() {
    return this.firstName + " " + this.lastName;
}
}
var person1 = {
firstName:"Bill",
lastName: "Gates",
}
var person2 = {
firstName:"Steve",
lastName: "Jobs",
}
person.fullName.call(person1);  // 将返回 "Bill Gates"

带参数的 call() 方法

2.call() 方法可接受参数:

实例

var person = {
fullName: function(city, country) {
return this.firstName + " " + this.lastName + "," + city + "," + country;
}
}
var person1 = {
firstName:"Bill",
lastName: "Gates"
}
person.fullName.call(person1, "Seattle", "USA");

五:JavaScript 函数 Apply

通过 apply() 方法,您能够编写用于不同对象的方法。
apply() 方法与 call() 方法非常相似:
在本例中,person 的 fullName 方法被应用到 person1:
实例

var person = {
fullName: function() {
    return this.firstName + " " + this.lastName;
}
}
var person1 = {
firstName: "Bill",
lastName: "Gates",
}
person.fullName.apply(person1);  // 将返回 "Bill Gates"
call() 和 apply() 之间的区别

不同之处是:
call() 方法分别接受参数。
apply() 方法接受数组形式的参数。
如果要使用数组而不是参数列表,则 apply() 方法非常方便。

posted @ 2021-01-27 18:42  大写的X  阅读(49)  评论(0编辑  收藏  举报