js 函数Function

1.函数实际上是一个对象typeof functionName→function,通过instanceof判断属于哪个类。

2.函数名实际是一个指针,指向某个函数体。

3.函数内部有两个对象:arguments和this。arguments不光可以指向函数传进去的参数,并且,arguments.callee指向函数,比如函数outer,调用的时候可以写为outer(),此时就可以更改为arguments.callee();

this指的是一个执行环境,比如我们单独调用函数outer,那么此时this就是window,如果我们采用call,或者apply就可以控制函数的调用对象,即this对象,

function outer(){}

var obj = new Object();

outer.call(obj);这时this就指向的是obj。

我们可以看到两个方法apply和call,都是方法的调用,方法可以通过方法名称调用,为什么还需要call和apply。因为他们可以控制this对象。其中如果outer.call(null)或者

outer.call(undefined),那么此时则指向的是window对象。call和apply的区别在于第二个参数,apply的第二个参数只能是arguments和一个数组,而call则是一一列举的,比如

outer.call(obj,"red","blue");而apply则是outer.apply(obj,["red","blue"]);

时间: 2024-11-05 18:54:58

js 函数Function的相关文章

Js函数function基础理解

正文:我们知道,在js中,函数实际上是一个对象,每个函数都是Function类型的实例,并且都与其他引用类型一样具有属性和方法.因此,函数名实际上是指向函数对象的指针,不与某个函数绑定.在常见的两种定义方式(见下文)之外,还有一种定义的方式能更直观的体现出这个概念: var sum = new Function("num1", "num2", "return num1 + num2"); //不推荐 Function的构造函数可以接收任意数量的参

js 函数function的几种形式

1 //有的时候我们一直都在使用函数,但是却不知道函数使用的正真含义 2 //其中一个重要的目的是为了提高代码的复用率 3 //其二函数可以传递参数并有返回值 4 //函数声明 5 6 //不带参数,不带返回值 7 function add(){ 8 var arr=Array("大海","小河","山川"); 9 10 for(var i in arr){ 11 console.log(arr[i]); 12 } 13 } 14 15 add(

js中的函数function

js的function对象在调用过程中具有一个arguments的属性,它是由脚本解释器创建的(这也是arguments创建的唯一方式).arguments属性可以看作是一个Array对象,它有length属性,可以通过序号访问每一个参数,而且通过argument的callee属性可以获取对正在执行的Function对象的引用.如下: function factorial(n){ if(n<=n){ return 1; }else{ return n*arguments.callee(n-1);

认识js函数对象(Function Object)

认识函数对象(Function Object) 可以用function关键字定义一个函数,对于每个函数可以为其指定一个函数名,通过函 数名来进行调用.这些都是代码给用户的印象,而在JavaScript解释执行的时候,实际上每 个函数都是被维护为一个对象,这就是本小节将要介绍的函数对象(Function Object). 函数对象与其它用户所定义的对象有着本质的区别,这一类对象被称之为内部对象,例 如日期对象(Date).数组对象(Array).字符串对象(String)都是属于内部对象.换句话

js中(function(){…})()立即执行函数写法理解

javascript和其他编程语言相比比较随意,所以javascript代码中充满各种奇葩的写法,有时雾里看花,当然,能理解各型各色的写法也是对javascript语言特性更进一步的深入理解. ( function(){…} )()和( function (){…} () )是两种javascript立即执行函数的常见写法,最初我以为是一个括号包裹匿名函数,再在后面加个括号调用函数,最后达到函数定义后立即执行的目的,后来发现加括号的原因并非如此.要理解立即执行函数,需要先理解一些函数的基本概念.

js立即执行函数: (function ( ){...})( ) 与 (function ( ){...}( ))

( function(){…} )() ( function (){…} () ) 是两种javascript立即执行函数的常见写法,最初我以为是一个括号包裹匿名函数,再在后面加个括号调用函数,最后达到函数定义后立即执行的目的,后来发现加括号的原因并非如此.要理解立即执行函数,需要先理解一些函数的基本概念. 函数声明.函数表达式.匿名函数 函数声明:function fnName () {…};使用function关键字声明一个函数,再指定一个函数名,叫函数声明. 函数表达式 var fnNam

js中自执行函数(function(){})()和(function(){}())区别

方式一,调用函数,得到返回值.强制函数直接量执行再返回一个引用,引用在去调用执行方式二,调用函数,得到返回值.强制运算符使函数调用执行(function(){})(); 是 把函数当作表达式解析,然后执行解析后的函数相当于 var a = function(){}; a(); a得到的是函数(function(){}()); 是把函数表达式和执行当作语句直接执行.相当于 var a = function(){}(); a得到的是结果最终结果是一样的.()只是起了 自执行的作用和 () 一样的还有

JS函数大全 莫名其妙找到的

1 .document.write(""); 输出语句 2 .JS中的注释为// 3 .传统的HTML文档顺序是:document->html->(head,body) 4 .一个浏览器窗口中的DOM顺序是:window->(navigator,screen,history,location,document) 5 .得到表单中元素的名称和值:document.getElementById("表单中元素的ID号").name(或value) 6 .

js函数的几个特殊点

在ECMAScript中,Function(函数)类型实际上是对象.每个函数都是Function类型的实例,而且都与其他引用类型一样具有属性和方法.由于函数是对象,因此函数名实际上也是一个指向函数对象的指针. 1 函数的返回值和函数作为参数传递 //函数传递给函数 function box(sum,num){ return sum+num; } function sum(num){ return num+10; } var result = box(sum(10),10); //这里传递的是函数