JavaScript 函数—函数调用

JavaScript 函数有 4 种调用方式。

每种方式的不同在于 this 的初始化。

一、作为一个函数调用

以上函数不属于任何对象。但是在 JavaScript 中它始终是默认的全局对象。

在 HTML 中默认的全局对象是 HTML 页面本身,所以函数是属于 HTML 页面。在浏览器中的页面对象是浏览器窗口(window 对象)。以上函数会自动变为 window 对象的函数。

myFunction() 和 window.myFunction() 是一样的:

二、函数作为方法调用

注:函数作为方法调用会使得this的值成为对象本身。

三、使用构造函数调用函数

注:如果函数调用前使用了 new 关键字, 则是调用了构造函数。

构造函数的调用会创建一个新的对象。新对象会继承构造函数的属性和方法。

四、作为函数方法调用函数

在 JavaScript 中, 函数是对象。JavaScript 函数有它的属性和方法。

call() 和 apply() 是预定义的函数方法。 两个方法可用于调用函数,两个方法的第一个参数必须是对象本身。

注:两个方法都使用了对象本身作为第一个参数。 两者的区别在于第二个参数: apply传入的是一个参数数组,也就是将多个参数组合成为一个数组传入,而call则作为call的参数传入(从第二个参数开始)。

通过call()和apply()方法你可以设置this的值,且作为已存在对象的新方法调用

注:this 是 JavaScript 语言的一个关键字。

它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用。比如:

function test() {
    this.x = 1;
}

随着函数使用场合的不同,this 的值会发生变化。但是有一个总的原则,那就是this指的是,调用函数的那个对象。

原文地址:https://www.cnblogs.com/wlk14ly/p/9342944.html

时间: 2024-11-09 17:27:10

JavaScript 函数—函数调用的相关文章

javascript中函数调用,函数实例化,函数三者关系

<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>test</title> <script type="text/javascript" ></script> <script type="text/javascript"> // a

JavaScript函数,作用域以及闭包

JavaScript函数,作用域以及闭包 1. 函数 (1). 函数定义:函数使用function关键字定义,它可以用在函数定义表达式或者函数声明定义. a. 函数的两种定义方式: * function functionName() {} * var functionName = function(){} b. 两种函数定义不同之处 1). 声明提前问题 函数声明语句   :声明与函数体一起提前 函数定义表达式 :声明提前,但是函数体不会提前 请看下面图示:绿色线上面实在js初始加载的时候,查看

HTML 学习笔记 JavaScript (函数)

函数是由事件驱动的或者当他被调用时执行的可重复使用的代码块 实例 <!DOCTYPE html> <html> <head> <script> function myFunction() { alert("Hello World!"); } </script> </head> <body> <button onclick="myFunction()">点击这里</b

JavaScript权威设计--JavaScript函数(简要学习笔记十一)

1.函数调用的四种方式 第三种:构造函数调用 如果构造函数调用在圆括号内包含一组实参列表,先计算这些实参表达式,然后传入函数内.这和函数调用和方法调用是一致的.但如果构造函数没有形参,JavaScript构造函数调用的语法是允许省略实参列表和圆括号的. 如: var o=new Object(); //->等价于 var o=new Object; 第四种:使用call()与apply()间接调用(放在后面详细说明) 2.函数的实参与形参——可选形参 先看一个例子: function getA(

被括号括住的JavaScript函数

在JavaScript经常会看到这样的代码 ( function( $ ){ $( 'body' ).css( { 'background-color': '#ccc' } ); } )( jQuery ); 这里的一个JavaScript函数被一个括号括了起来, 然后后面紧跟着一个括号,这种奇葩的写法在其它如Java.VB.c#.c++.php等流行编程语言中根本见不到.这种写法乍一看是JavaScript特意增加的新奇特性, 其实并不是. 在我们编写任何程序时,时时刻刻在用到与上面代码类似的

Javascript 函数及其执行环境和作用域

函数在javascript中可以说是一等公民,也是最有意思的事情,javascript函数其实也是一个对象,是Function类型的实例.因此声明一个函数首先可以使用 Function构造函数: var saySomething = new Function("something","console.log(something)"); saySomething("hello world!"); // 输出hello world! Function

JavaScript函数的概念

函数是这样的一段代码,它只定义一次,但可能被执行或调用任意多次. JavaScript函数是参数化的:函数的定义会包含形参,这些参数在函数的整体中像局部变量一样工作.函数调用时会为形参提供实参的值.除了实参之外,每次调用还会拥有另一个值--本次调用的上下文--也就是this关键字的值. 如果函数挂载在一个对象上,作为对象的一个属性,就称它为该对象的方法.当通过这个对象来调用函数时,该对象就是此次调用的上下文(context),也是该函数this的值. 在JavaScript中,函数即对象,程序可

javascript函数总结

Javascript函数是一等公民,函数是可以单独存在的,不管函数定义在那个函数里面.都是可以被别的对象调用 例如: function Person(name) {     var walk = function()     {         alert("我会跑"):     } } walk.call(window); walk函数虽然是属于Person的 但是别的对象还是可以调用这个函数. 定义函数的方法 第一种: functoion 函数名(p1, p2) {     函数执

JavaScript函数的调用模式有哪些?

函数是JavaScript 世界里的第一公民,换句话来说,就是我们如果可以精通 JavaScript 函数的使用,那么对JavaScript 的运用可以更游刃有余了.熟悉 JavaScript 的人应该都知道,同样的函数,以不同的方式调用的话,受影响最大的应该是  this  .下面我们来说说 JavaScript 函数的各种调用模式,希望对大家 学习javascript有所帮助. 一.普通函数的调用模式 所谓普通函数的调用模式,也是JavaScript 函数的最简单的一种调用模式,直接就是函数