JavaScript函数

原创 2012年03月30日 23:35:23

在JavaScript中,函数本身与其他任何的内助对象在地位上是没有区别的,函数本身也是对象。

在JavaScript中:

函数可以被赋值给一个变量

可以被赋值为对象的属性

可以作为参数被传入别的函数

可以作为函数的结果被返回

可以用字面量来创建

1.函数对象

通过new 操作符来创建

var add=new Function("x","y","return(x+y)");


通过字面量来创建

function add(x,y){

  return x+y;

}

var add=function(x,y){

return x+y;

}


2. 函数的参数

在JavaScript中,函数的参数是比较有意思的,比如,你可以将任意多的参数传递给一个函数,即使这个函数声明时并未制定形式参数,比如:


function adPrint(str,len,option){

  var s=str ||"default";

   var l=len ||s.length;

   var o=option  || "i";

  s=s.substring(0,1);

switch(o){

    switch(o)  {

    case "u":

         s=s.toUpperCase();

         break;

    case "1":

         s=s.toUpperCase();

         break;

      default:

        break;

      }

     print(s);

}


}


adprint("hello,world");

adprint("hello,world",5);

adprint("hello,world",5,"1");  //lower case

adprint("hello,world",5,"u");  //upper case

函数adPrint在声明时接受三个形式参数:要打印的串,要打印的长度,是否转换为大小写的标记。但是在调用的时候,我们可以按顺序传递给adrint一个参数,

两个参数,或者三个参数


3.函数上下文

在JavaScript中,函数也是一种对象,并非其他任何对象的一部分。函数的上下文是可以变化的,因此,函数内的

this也是可以变化的,函数可以作为一个对象的方法,也可以同时作为另一个对象的方法,总之,函数本身是独立的。

可以通过Function对象上的call或者apply函数来修改函数的上下文:

4.call和apply

call 和apply通常用来修改函数的上下文,函数中的this指针将被替换为call或者apply的第一个参数。


//定义一个人,名字为jack

var jack ={

                name:"jack"'

                 age:26

                 }

//定义另一个人,名字为abruzzi

 var abruzzi ={

                  name:"abruzzi",

                  age:26

            }

//定义一个全局的函数

function printName(){

                    return this.name;

}

.//设置printName的上下文为jack,此时的this为jack

print(printName.call(jack));

//设置printName的上下文为abruzzi,此时的this为abruzzi

print(printName.call(abruzzi));

print(printName.apply(jack));

print(printName.apply(abruzzi));

只有一个参数的时候call和apply的使用方式是一样的,如果有多个参数:

apply的第二个参数为一个函数需要的参数组成的一个数组,而call则需要跟若干个参数,参数之间以逗号隔开即可





javascript基本知识小结--命名空间,函数

1.命名空间           在代码量需求庞大以及功能逻辑需求复杂的今天,编程语言必须融入模块化的思想。但在网上查看资料发现,javascript并没有融入作用域概念。为此程序猿们已经利用ja...
  • Gavin_new
  • Gavin_new
  • 2016年03月23日 14:43
  • 593

JavaScript中函数的三种定义方法

本文整理了JavaScript中函数定义的三种方法。 函数的三种定义方法分别是:函数定义语句、函数直接量表达式和Function()构造函数的方法。下面依次介绍这几种方法具体怎么实现。 1. 函数定义...
  • crazyorange_shen
  • crazyorange_shen
  • 2017年04月03日 11:51
  • 1535

javaScript内置函数大全

1.Date:日期函数 属性(1): constructor 所修立对象的函数参考 prototype 能够为对象加进的属性和方法 办法(43): getDay() 返回一周中的第几天(0-6) ge...
  • qq_31065001
  • qq_31065001
  • 2017年02月07日 17:18
  • 1947

javascript的执行函数的四种方式

javascript的函数调用和构造函数调用函数调用、方法调用以及构造函数调用1 函数调用Function绝对是JavaScript中的重中之重。在JavaScript中,Function承担了pro...
  • sunshine940326
  • sunshine940326
  • 2016年08月16日 16:28
  • 2435

JavaScript之局部变量和局部函数

局部变量在前面已经解释过了,这里就不重复了。那么什么是局部函数呢?局部函数就是在函数里的。下面我们在函数outer中定义了两个局部函数。 // 定义全局函数 function outer() ...
  • owen_william
  • owen_william
  • 2016年04月07日 19:23
  • 775

JavaScript函数和对象提高!!!!!!

JavaScript函数和对象提高!!!!!! 主要内容介绍 函数 函数的概念函数的参数函数的返回值函数的作用域变量提升和函数提升函数参数传递方式 对象 什么是JavaScrip...
  • chizhongwenshan
  • chizhongwenshan
  • 2016年03月30日 15:12
  • 788

javascript 对象和函数(方法)区别和联系

javascript 对象和函数区别和联系
  • tengdazhang770960436
  • tengdazhang770960436
  • 2017年01月17日 11:46
  • 413

JavaScript中search和match函数的区别

记得以前还在学校的时候,第一次接触 JavaScript 编程,算是第一种编程入门语言吧,总是分不清 search 和 match 这两个函数的区别,好不容易弄明白了,到了考试的时候又混淆了,唉!气。...
  • u010324127
  • u010324127
  • 2014年01月09日 21:08
  • 1962

不一样的Javascript(10)——函数嵌套

1. 在Javascript中,函数中可以嵌套其他函数。例如: function distance(x1, y1, x2, y2) { function square (x) { ...
  • haitaohe
  • haitaohe
  • 2013年12月17日 17:17
  • 5741

javascript的函数属性和方法

在ECMAScripte中的函数是一个对象,因此函数也有属性和方法。 属性:length和property length:指的是函数传入参数的个数 function a(name){ …… ...
  • u014458334
  • u014458334
  • 2015年12月20日 22:55
  • 376
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JavaScript函数
举报原因:
原因补充:

(最多只允许输入30个字)