JS函数的4种调用方式

函数可以声明定义,也可以是一个表达式,

函数使用关键字function定义

函数被定义时,函数内部的代码不会执行

函数被调用时,函数内部的代码才会执行

函数有四种调用方式,每种方式的不同在于this的初始化。

(this是保留关键字,this指函数执行时的当前对象,this的值无法改变)

1、作为一个函数调用:直接调用函数

function abc(x,y) {
    return x *y;
};
    
console.log(abc(5,6));
console.log(abc(6,8));

2、作为方法来调用函数:将函数定义为对象的方法

(last方法是一个函数,obj是函数的所有者)

var obj = {
   name:"yoe",
    age:22,
   last:function () {
        returnthis.name + " " + this.age;
    },
};
 
console.log(obj.last());

//修改last方法,返回this值
//函数作为方法调用,使this的值成为对象本身
var obj = {
   name:"yoe",
    age:22,
   last:function () {
        returnthis;
    },
};
 
console.log(obj.last());

3、使用构造函数调用函数:(函数调用前使用new关键字)

//构造器调用会创建新对象。新对象会从构造器中继承属性即方法
//函数构造器
function dee(a,b) {
    //构造器中的this没有值
    this.one =a;
    this.two =b;
}
//创建新的对象
//this的值在调用对象时创建
var obj = new dee("ele","vent");
 
console.log(obj.two);

4、作为函数方法调用函数:(call和apply是预定义的函数)

call() 方法可以接收多个参数列表,

apply() 方法只能接收数组形式的参数,数组元素将作为参数列表传递给被调用的函数

两个方法的第一个参数必须是对象本身(也可以是null)

当第一个参数为null时,得到的是当前运行环境的全局变量(window)

//call()方法 函数名.call()
function def1(x,y) {
    return x *y;
};
console.log(def1.call(null,3,4));
    
 //apply()方法 函数名.apply()
function def2(x,y) {
    return x +y;
};
console.log(def2.apply(null,[4,6]));

apply、call、bind三者的区别:

相同:

1.都是用来改变函数的this对象的指向

2.第一个参数都是this要指向的对象

3.都可以利用后续参数传参

区别:

1.apply、call、bind的第一个参数都是this要指向的对象,但apply只有两个参数,第二个参数为一个数组,需要传输的参数值全部放到数组中;call和bind的参数是用逗号隔开。

2.apply和call返回的是一个值,bind返回的是一个函数

3.bind是返回绑定this之后的函数,便于稍后调用,apply和call是立即调用

Javascript调用函数方法的几方式介绍
10-24
主要介绍了Javascript调用函数方法的几方式介绍,本文讲解了func()、(function(arg){})(window)、func.bind(sth)()、func.call()、func.apply()等5方式,需要的朋友可以参考下
JavaScript函数的4调用方法实例分析
10-17
主要介绍了JavaScript函数的4调用方法,结合实例形式总结分析了javascript函数调用常见操作技巧与注意事项,需要的朋友可以参考下
JavaScript函数调用
m566666的博客
11-12 6510
函数调用有三方式: 1.直接调用 2.call调用 3.apply调用 一、直接调用 直接调用函数是最常见、最普通的方式。这方式直接以函数附加的对象作为调用者,在函数后括号内传入参数来调用函数。例如下代码: <script> function person(name, age) { this.name = name; this.age = age; ...
Javascript知识分享——函数
DS153的博客
11-02 794
前言 学习javascript的过程中,基础是非常重要的。基础中,函数和对象都是非常重要的对象之一。今天我们就来学一下,函数的知识,学习为什么需要函数,怎么声明,调用函数等等的知识。 一、函数的概念 在 JS 里面,可能会定义非常多的相同代码或者功能相似的代码,这些代码可能需要大量重复使用。虽然 for循环语句也能实现一些简单的重复操作,但是比较具有局限性,此时我们就可以使用 JS 中的函数函数:就是封装了一段可被重复调用执行的代码块。通过此代码块可以实现大量代码的重复使用...
函数调用方式有几
最新发布
z13903931414的博客
04-11 647
以上就是函数调用的一些主要方式,每方式都有其特定的应用场景。
js函数调用的四方式
m0_59761769的博客
03-12 2842
1.函数名(实参列表); var obj = { name: 'briup', sayName: function () { console.log(this.name); } } var b = obj.sayName; b(); //undefined 此时的this指向的是全局变量 obj.sayName(); // briup sayName包含在谁里就指向谁 2.函数名.call(执行环境对象,实参列表); b.call(obj); // briup 在使用call....
标签调用js的几方法分享
xiaoweids的博客
07-11 835
转自:微点阅读 https://www.weidianyuedu.com我们常用的在a标签中有点击事件:1. a href="javascriptjs_method();"这是我们平台上常用的方法,但是这方法在传递this等参数的时候很容易出问题,而且javascript:协议作为a的href属性的时候不仅会导致不必要的触发window.onbeforeunload,在IE里面更会使gif动画图片停止播放。W3C标准不推荐在href里面执行javascript语句2. a href="javascri
JavaScript高级之函数的四调用形式
soma的专栏
03-03 2075
主要内容 分析函数的四调用形式弄清楚函数中this的意义明确构造函对象的过程学会使用上下文调用函数 了解函数调用过程有助于深入学习与分析JavaScript代码。本文是JavaScript高级这个系列中的第三篇文章,主要介绍JavaScript函数的四使用形式。在JavaScript中,函数是一等公民,函数JavaScript中是一个数据类型,而非像C#或其他描述性语言那样仅仅作
JavaScript函数的4调用方法详解
12-12
函数有四调用模式,分别是:函数调用形式、方法调用形式、构造器形式、以及apply形式。这里所有的调用模式中,最主要的区别在于关键字 this 的意义,下面分别介绍这个几调用形式。 本文主要内容: 1.分析函数的...
JavaScript调用函数的4方式代码实例
10-23
主要介绍了JavaScript调用函数的4方式代码实例,本文分别给出方法调用模式、函数调用模式、构造器调用模式、apply调用模式4方式的代码实例,需要的朋友可以参考下
浅谈js函数定义方式 & 四调用方式 & 调用顺序
10-20
下面小编就为大家带来一篇浅谈js函数定义方式 & 四调用方式 & 调用顺序。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
如何在JavaScript调用函数调用
cumt30111的博客
07-06 627
Functions are a way to break down your code into various blocks. o as to write neat, understandable and more modular code. Functional programming is widely used across different platforms with differe...
JavaScript的5调用函数的方法
weixin_33860147的博客
03-12 338
这篇文章详细的介绍了Javascript中各函数调用的方法及其原理,对于理解JavaScript函数有很大的帮助! JavaScript,调用函数的5方法    一次又一次的,我发现,那些有bug的Javascript代码是由于没有真正理解Javascript函数是如何工作而导致的(顺便说一下,许多那样的代码是我写的).JavaScript拥有函数式编程的特性, 当我们选...
JS和原生之间的相互调用总结
WJ的博客
09-26 7263
JS和原生之间的相互调用总结 基础知识 按照官方文档上的意思简单介绍这几个类的作用: JSVirtualMachine JSVirtualMachine 是JavaScript的一个封闭的运行环境,主要用于支持JavaScript并行运行和管理JavaScript与OC或者Swift之间桥接的内存。 JSContext JSContext是JavaScript的运行环境,可以在OC或者Sw...
深入理解JavaScript系列(4):立即调用函数表达式
weixin_33763244的博客
12-31 684
前言 大家学JavaScript的时候,经常遇到自执行匿名函数的代码,今天我们主要就来想想说一下自执行。在详细了解这个之前,我们来谈了解一下“自执行”这个叫法,本文对这个功能的叫法也不一定完全对,主要是看个人如何理解,因为有的人说立即调用,有的人说自动执行,所以你完全可以按照你自己的理解来取一个名字,不过我听很多人都叫它为“自执行”,但作者后面说了很多,来说服大家称呼为“立即调用函数表达式”。...
js命名函数、匿名函数、自调用函数
u010234868的专栏
06-04 306
// 1.命名函数 function fn() { console.log('hello'); } fn(); // hello // 2. 匿名函数 // 不能单独存在,需要赋值给一个变量或者自调用 function () { console.log('hello'); } // 直接执行:Uncaught SyntaxError: Function statements require a function name var fn = function () { console.l
js内部函数的定义及调用
Honeyhanyu的博客
09-16 8940
内部函数:定义在另一个函数中的函数 例如: 1 2 3 4 5 6 7     function outer(){         function inner(){           }       }   inner()就是一个被包
js函数通过 方式调用
06-11
JavaScript函数调用方式分为三方式函数调用、方法调用和构造函数调用。 1. 函数调用:直接调用函数,例如 `foo()`,此时函数的 `this` 值指向全局对象(在浏览器中是 `window` 对象)。 2. 方法调用:将函数作为对象的一个方法来调用,例如 `obj.foo()`,此时函数的 `this` 值指向该对象。 3. 构造函数调用:使用 `new` 关键字调用函数,例如 `new Foo()`,此时函数的 `this` 值指向新创建的对象。 需要注意的是,函数调用方式会影响函数内部 `this` 的指向。函数调用和方法调用时,`this` 指向的是全局对象(在浏览器中是 `window` 对象),而构造函数调用时,`this` 指向的是新创建的对象。 例如: ``` function foo() { console.log(this); } foo(); // 全局对象 var obj = { foo: foo }; obj.foo(); // obj 对象 new foo(); // 新创建的对象 ``` 在上述例子中,函数 `foo` 中打印了 `this` 对象,分别通过函数调用、方法调用和构造函数调用调用 `foo` 函数,并观察 `this` 的指向。需要注意的是,当函数作为对象的方法调用时,`this` 指向该对象,而不是函数本身。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • Linux中grep详解 34818
  • Snipaste介绍、安装、使用技巧(截图贴图工具) 32384
  • Keil 5(C51)介绍、下载、安装与2个补丁 27218
  • java字符串转数字,各种数字转字符串的3种方法 26732
  • Windows下的TCP/UDP网络调试工具-NetAssist以及Linux下的nc网络调试工具 24136

分类专栏

  • JAVA知识点杂烩 92篇
  • 前端(html+css+js)知识点杂烩 70篇
  • 编程工具 56篇
  • 数据库知识点杂烩 16篇
  • 软件介绍、安装和使用说明 6篇
  • go知识点杂烩 16篇
  • 脚本 17篇
  • 树莓派4B 11篇
  • C语言知识点杂烩 38篇
  • linux知识点杂烩 5篇
  • python知识点杂烩 9篇
  • 51单片机知识点杂烩 8篇
  • 掌控板2.0 16篇
  • Excel VBA知识点杂烩 15篇
  • MFC知识点杂烩 1篇
  • docker(容器) 1篇
  • 力扣初级算法学习(带测试用例) 14篇
  • C#知识点杂烩 1篇

最新评论

  • VMware虚拟机下载安装教程【详细步骤 - 图文结合】

    huangjisheng1: VMware Workstation官网为什么不能登录账号,下载不了

  • 树莓派系统镜像的下载和烧写

    m0_74219165: 为什么我下载的Raspberry Pi Device里边是空的

  • VMware虚拟机下载安装教程【详细步骤 - 图文结合】

    陈老老老板: 什么应用?没太理解

  • 电脑上如何播放swf文件

    山东徐大侠: flash在国内被外包了,这家公司不地道。全是广告和弹窗

  • windows下cmake的小白级入门使用教程(hello world)

    小盆友_GU: 如果cmake -G "MinGW Makefiles" .. 命令无效的话,可以试一下cmake -G "Unix Makefiles" .. 命令。

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • java实现文件的压缩及解压
  • 7-zip安装教程
  • 5款实用的Redis客户端可视化工具
2024
06月 1篇
05月 10篇
04月 5篇
03月 4篇
02月 9篇
01月 11篇
2023年325篇
2022年29篇
2018年4篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳SEO优化公司宣城企业网站建设多少钱汉中网站推广方案大丰企业网站设计忻州关键词按天扣费哪家好营口关键词按天扣费推荐肇庆关键词按天计费报价吕梁网站开发哪家好遵义外贸网站制作推荐晋中外贸网站建设通辽百姓网标王推广多少钱宿迁企业网站设计推荐新乡高端网站设计价格云浮网站设计天门百度爱采购报价常德关键词按天收费价格阜新网站推广多少钱保定网站优化推广哪家好鄂州网站制作设计价格济南SEO按天扣费推荐松原网站设计哪家好洛阳网络广告推广多少钱天水至尊标王报价莆田关键词按天扣费驻马店阿里店铺运营报价泸州关键词排名哪家好平凉百度竞价包年推广公司哈尔滨网站制作设计价格阿里企业网站改版铜川外贸网站设计多少钱南宁建站报价歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化