JavaScript函数的调用模式

我们说一个函数的调用模式是作为一个函数来调用,是要与其它三种调用模式做区分
函数其他的三种调用: 方法调用模式,构造器调用模式,apply/call调用模式。

方法的调用模式:

var obj={
    fun1: function(){
        //方法内容
        this; //指的是window
    }
}

obj.fun1() //方法的调用

构造器的调用:

function Person(name, age, job){
    this.name = name;
    this.age = age;
    this.job = job;
    this.sayName = function(){
        alert(this.name);
    };
}
var person1 = new Person("Nicholas", 29, "Software Engineer");
var person2 = new Person("Greg", 27, "Doctor");

apply/call调用模式:

function cat(){}
cat.prototype = {
    food: "fish",
    say: function(){
        alert("I love " + this.food);
    }
};

var blackCat = new cat;
blackCat.say();

这里如果没有显性的return语句,这个新的对象则会被隐式的return,并成为这个构造器的值。 也就是说这里可以等价于: var blackCat = new cat();

但是如果我们有一个对象

var whiteDog = {
    food: "bone"
};

我们不想对它重新定义say方法,那么我们可以通过call或apply用blackCat的say方法:

blackCat.say.call(whiteDog);

所以,可以看出call和apply是为了动态改变this而出现的,当一个object没有某个方法,但是其他的有,我们可以借助call或apply用其它对象的方法来操作。

用的比较多的,通过document.getElementsByTagName选择的dom 节点是一种类似array的array(arguments等等)。它不能应用Array下的push,pop等方法。我们可以通过:
var domNodes = Array.prototype.slice.call(document.getElementsByTagName("*"));
这样domNodes就可以应用Array下的所有方法了。

注: 参考

时间: 2024-10-03 04:48:15

JavaScript函数的调用模式的相关文章

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

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

javascript函数自调用

1. 函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块. 2.  将函数用 “()”括起来, 后面再加一个“()” 3.  javascript函数的内置对象arguments对象,  它包含了函数调用的参数数组! 4.  函数调用方法, 函数是对象,对象的方法call() .apply()来调用函数! notice: 1.  js调用函数可以不含参数,不给形参传值也可以哦!   在调用函数时,您可以向其传递值,这些值被称为参数.    其实就是arguments对象为空! 2.  函

javascript函数的调用 常规调用和用new调用

javascript函数的返回值 函数在没有明确返回值的情况下,全部都返回undefined 当函数有明确的返回值时: 如果函数返回值为常规意义上的值类型(Number.boolean.String)时, 通过new运算符将会返回一个该函数的实例对象; 如果函数返回一个引用类型(Object.Array.Function)时,则通过new运算符与直接调用函数产生的结果等同; 函数的返回值类型是值类型(Number.boolean.String): 1 function person(){ 2 v

js 函数的调用模式

1.函数调用 调用一个函数将暂停当前函数的执行,传递控制权和参数给新函数.除了函数声明时定义的形参,每个函数还接受两个附加的参数:this和arguments(arguments并不是一个真正的数组,它拥有length属性,但它缺少数组的所有方法).参数this在面向对象编程中非常重要,它的值取决于调用的模式.在js中一共有四种调用模式:方法调用模式.函数调用模式.构造器调用模式和apply调用模式.这些模式在如何初始化关键参数this上存在差异.arguments的个数取决于函数定义时候形参的

JavaScript函数的调用(通过节点)--JavaScript DOM编程艺术

问题:点击某个图片链接时,可以在当前网页同时看到图片以及原有的图片清单 解决:增加一个"占位符"为图片预留一个浏览区域 1,在清单后添加占位符 <img id="placeholder" src="img/001.jpg" alt="my image"> 2,改变占位符的src属性 function showPic(whichpic){var placeholder=document.getElementById(

JavaScript中函数的四种调用模式

理解函数的四种调用方法,可以有效的帮助我们分析和理解JavaScript代码.但是经常有人分不清楚或者不理解这四种调用模式,在JavaScript中,函数是一等公民,函数在JavaScript中是一个数据类型,而非像C#或其他描述性语言那样仅仅作为一个模块来使用.函数有四种调用模式,分别是:1.函数调用形式 2.方法调用形式 3.构造器调用形式 4.上下文调用形式(apply,call)这里所有的调用模式中,最主要的区别在于关键字 this 的意义.下面分别介绍这几种调用形式. 一.函数调用形式

JavaScript函数的各种调用模式

函数是JavaScript世界里的第一公民,换句话来说,就是我们如果可以精通JavaScript函数的使用,那么对JavaScript的运用可以更游刃有余了.熟悉JavaScript的人应该都知道,同样的函数,以不同的方式调用的话,受影响最大的应该是  this .下面我们来说说JavaScript函数的各种调用模式. 一.普通函数的调用模式 所谓普通函数的调用模式,也是JavaScript函数的最简单的一种调用模式,直接就是函数名后接一个  ()  实现调用,看下面代码: function f

JavaScript之基础-5 JavaScript 函数

一.JavaScript 函数定义 函数(方法,过程) - 函数(Function),有时也被称为方法(Method),或者过程(Procedure) - 是一段预定义好,并可以被反复使用的代码块,其中可以包含多条可执行语句 - 函数本质上是功能完整的对象 定义函数(方法,过程)的功能 - 使用关键字 function 定义一个函数 - 函数名的定义规则与标识符一直,大小写敏感 - 最简单的函数定义 定义参数和返回值 - 稍微复杂些的函数可能需要声明执行参数 - 或者使用 return 关键字声

javascript中函数的四种调用模式详解

介绍函数四种调用模式前,我们先来了解一下函数和方法的概念,其实函数和方法本质是一样,就是称呼不一样而已.函数:如果一个函数与任何对象关系,就称该函数为函数.方法:如果一个函数作为一个对象属性存在,我们就称之为方法.接下来就可以开始今天的主体. 1.函数调用模式. 就是通过函数来调用,规范写法为:function fn(){} fn(); 函数中this的指向->window.案例如下: var age = 38; var obj = { age: 18, getAge: function() {