保藏本站 保藏本站
真钱棋牌网主页 - 软件测验 - 常用手册 - 站长东西 - 技能社区
主页 > JavaScript > JS根底入门 > 正文

主页 - PHP - 数据库 - 操作体系 - 游戏开发 - JS - Android - MySql - Redis - MongoDB - Win8 - Shell编程 - DOS指令 - jQuery - CSS款式 - Python - Perl

Access - Oracle - DB2 - SQLServer - MsSql2008 - MsSql2005 - Sqlite - PostgreSQL - node.js - extjs - JavaScript vbs - Powershell - Ruby

JavaScript函数的调用以及参数传递

JavaScript 函数调用
JavaScript 函数有 4 种调用办法。
每种办法的不同办法在于 this 的初始化。
this 关键字
一般来说,在Javascript中,this指向函数履行时的当时目标。
Note 留意 this 是保存关键字,你不能修正 this 的值。
调用 JavaScript 函数
函数中的代码在函数被调用后履行。
作为一个函数调用
实例

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


以上函数不归于任何目标。可是在 JavaScript 中它始终是默许的大局目标。
在 HTML 中默许的大局目标是 HTML 页面自身,所以函数是归于 HTML 页面。
在浏览器中的页面目标是浏览器窗口(window 目标)。以上函数会主动变为 window 目标的函数。
myFunction() 和 window.myFunction() 是相同的:
实例

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


Note 这是调用 JavaScript 函数常用的办法, 但不是杰出的编程习气
大局变量,办法或函数简略形成命名抵触的bug。
大局目标
当函数没有被自身的目标调用是, this 的值就会变成大局目标。
在 web 浏览器中大局目标是浏览器窗口(window 目标)。
该实例回来 this 的值是 window 目标:
实例

function myFunction() {
  return this;
}
myFunction();        // 回来 window 目标


Note 函数作为大局目标调用,会使 this 的值成为大局目标。
运用 window 目标作为一个变量简略形成程序溃散。
函数作为办法调用
在 JavaScript 中你能够将函数界说为目标的办法。
以下实例创立了一个目标 (myObject), 目标有两个特点 (firstName 和 lastName), 及一个办法 (fullName):
实例

var myObject = {
  firstName:"John",
  lastName: "Doe",
  fullName: function () {
    return this.firstName + " " + this.lastName;
  }
}
myObject.fullName();     // 回来 "John Doe"


fullName 办法是一个函数。函数归于目标。 myObject 是函数的一切者。
this目标,具有 JavaScript 代码。实例中 this 的值为 myObject 目标。
测验以下!修正 fullName 办法并回来 this 值:
实例

var myObject = {
  firstName:"John",
  lastName: "Doe",
  fullName: function () {
    return this;
  }
}
myObject.fullName();     // 回来 [object Object] (一切者目标)


Note 函数作为目标办法调用,会使得 this 的值成为目标自身。
运用结构函数调用函数
假如函数调用前运用了 new 关键字, 则是调用了结构函数。
这看起来就像创立了新的函数,但实际上 JavaScript 函数是从头创立的目标:
实例

// 结构函数:
function myFunction(arg1, arg2) {
  this.firstName = arg1;
  this.lastName = arg2;
}

// This creates a new object
var x = new myFunction("John","Doe");
x.firstName;               // 回来 "John"


结构函数的调用会创立一个新的目标。新目标会承继结构函数的特点和办法。
Note 结构函数中 this 关键字没有任何的值。
this 的值在函数调用时实例化目标(new object)时创立。
作为函数办法调用函数
在 JavaScript 中, 函数是目标。JavaScript 函数有它的特点和办法。
call() 和 apply() 是预界说的函数办法。 两个办法可用于调用函数,两个办法的第一个参数有必要是目标自身。
实例

function myFunction(a, b) {
  return a * b;
}
myFunction.call(myObject, 10, 2);   // 回来 20

实例

function myFunction(a, b) {
  return a * b;
}
myArray = [10,2];
myFunction.apply(myObject, myArray);  // 回来 20


两个办法都运用了目标自身作为第一个参数。 两者的差异在于第二个参数: apply传入的是一个参数数组,也便是将多个参数组合成为一个数组传入,而call则作为call的参数传入(从第二个参数开端)。
在 JavaScript 严厉形式(strict mode)下, 在调用函数时第一个参数会成为 this 的值, 即便该参数不是一个目标。
在 JavaScript 非严厉形式(non-strict mode)下, 假如第一个参数的值是 null 或 undefined, 它将运用大局目标代替。
Note 经过 call() 或 apply() 办法你能够设置 this 的值, 且作为已存在目标的新办法调用。

JavaScript 函数参数
JavaScript 函数对参数的值(arguments)没有进行任何的检查。
函数显式参数与躲藏参数(arguments)
在从前的教程中,咱们现已学习了函数的显式参数:

functionName(parameter1, parameter2, parameter3) {
  code to be executed
}


函数显式参数在函数界说时列出。
函数躲藏参数(arguments)在函数调用时传递给函数真实的值。
参数规矩
JavaScript 函数界说时参数没有指定数据类型。
JavaScript 函数对躲藏参数(arguments)没有进行检测。
JavaScript 函数对躲藏参数(arguments)的个数没有进行检测。
默许参数
假如函数在调用时短少参数,参数会默许设置为: undefined
有时这是能够承受的,可是主张最好为参数设置一个默许值:
实例

function myFunction(x, y) {
  if (y === undefined) {
     y = 0;
  } 
}

或许,更简略的办法:
实例

function myFunction(x, y) {
  y = y || 0;
}

Note 假如y现已界说 , y || 回来 y, 由于 y 是 true, 不然回来 0, 由于 undefined 为 false。
假如函数调用时设置了过多的参数,参数将无法被引证,由于无法找到对应的参数名。 只能运用 arguments 目标来调用。
Arguments 目标
JavaScript 函数有个内置的目标 arguments 目标.
argument 目标包含了函数调用的参数数组。
经过这种办法你能够很便利的找到最终一个参数的值:
实例

x = findMax(1, 123, 500, 115, 44, 88);

function findMax() {
  var i, max = 0;
  for (i = 0; i < arguments.length; i++) {
    if (arguments[i] > max) {
      max = arguments[i];
    }
  }
  return max;
}

或许创立一个函数用来计算一切数值的和:
实例

x = sumAll(1, 123, 500, 115, 44, 88);

function sumAll() {
  var i, sum = 0;
  for (i = 0; i < arguments.length; i++) {
    sum += arguments[i];
  }
  return sum;
}


经过值传递参数
在函数中调用的参数是函数的参数。
假如函数修正参数的值,将不会修正参数的初始值(在函数外界说)。
函数参数的改动不会影响函数外部的变量(局部变量)。
经过目标传递参数
在JavaScript中,能够引证目标的值。
因而咱们在函数内部修正目标的特点就会修正其初始的值。
修正目标特点可作用于函数外部(大局变量)。

详解JavaScript操作HTML DOM的根本办法
经过HTMLDOM,可拜访JavaScriptHTML文档的一切元素。HTMLDOM(文档目标模型)当网页被加载时,浏览器会创立页面的文档目标模型(DocumentObjectModel)。HTMLDOM模型

JavaScript对HTML DOM运用EventListener进行操作
addEventListener()办法实例点用户点击按钮时触发监听事情:document.getElementById("myBtn").addEventListener("click",displayDate);addEventListener()办法用于向指定元素增加事

JavaScript操作HTML元素和款式的办法详解
JavaScriptHTMLDOM元素(节点)创立新的HTML元素如需向HTMLDOM增加新元素,您有必要首要创立该元素(元素节点),然后向一个已存在的元素追加该元素。实例divid

本周排行

更新排行

强悍的草根IT技能社区,这儿应该有您想要的! 友情链接:b2b电子商务
Copyright © 2010 ystekkfj.com. All Rights Rreserved  京ICP备05050695号