创建对象的方式以及call,apply,bind的区别
创建对象的方式有四种
1.直接量
var obj={
属性名:属性
方法名:function(){}
}
2.通过构造函数创建对象,这样能够批量创建多个具有相同属性的子对象(顺便介绍call,apply,bind三个关键字的区别应用)
function person(name,age){
this.name=name;
this.age=age;
}
或者function person2(name,age){
this.name=argument[0];
this.age=argument[1];
}
第一种方式用call
functon student(name,age.sex,tel){
person.call(this,name,age);
this.sex=sex;
this.tel=tel;
}
call()的作用就是让person中的this的指向全部都改成call中的内容,并且能在里面追加参数
第二种方式用apply
functon student(name,age.sex,tel){
person2.apply(this,[name,age]);
this.sex=sex;
this.tel=tel;
}
还有第三种方式就是用bind
例子1:
function person(name,age){
this.name=name;
this.age=age;
console.log(this.name,this.age)
}
var student=person.bind();
student(9,10);
例子2:
function calc(base,bonus){
console.log(this.ename+"的总工资是"+(base+bonus)
}
var lilei ={ename:"li lei"}
var Lilei=calc.bind(lilei);
bind其实就是讲旧的函数复制了一份给了新的函数,并且永久绑定this,并且也可以永久绑定参数。
总结来说call借用别人的方法,完成自己的事情需要把实参按照形参的个数传进去。立刻执行
apply也是借用别人的方法,但是传递参数是按照数组的方式,需要注意实参跟形参的顺序。也是立刻执行
bind是创建了一个新的函数,但是不立刻执行。
转载于:https://www.cnblogs.com/yzxyzx/p/11369272.html
创建对象的方式以及call,apply,bind的区别相关推荐
- 前端学习(1115):call apply bind的区别
- call,apply,bind的区别
1 转载于:https://www.cnblogs.com/YangJonathan/p/11223641.html
- JS高级—call(),apply(),bind()
文章目录 call() 介绍 语法 特点 返回值 使用(主要应用) apply() 介绍 语法 特点 返回值 使用 bind() 介绍 语法 特点 返回值 使用 call(),apply(),bind ...
- JavaScript中的call,apply,bind区别及应用(包含手写call/apply/bind)
目录 一.使用目的 二.三者分别是如何定义的及区别(摘自MDN) 三.在程序中收获 四.三者的具体应用 四.手写bind,apply,call 今天在读程序题的时候,遇到call,apply,bind ...
- 函数调用的方法一共有 4 种,call,apply,bind
1. 每个函数都包含两个非继承而来的方法:call()方法和apply()方法. 2. 相同点:这两个方法的作用是一样的. 都是在特定的作用域中调用函数,等于设置函数体内this对象的值,以扩充函数赖 ...
- JavaScript内置一些方法的实现原理--new关键字,call/apply/bind方法--前戏
new关键字,call/apply/bind方法都和this的绑定有关,在学习之前,首先要理解this. 一起来学习一下this吧 首先.this是一个对象. 对象很好理解,引用类型值,可以实现如th ...
- 复习javascript中call,apply,bind的用法
一直很难理解js中的call apply bind,在w3schools,mdn阅读了,也看了很多相关的文章,今天我来写下我理解的call apply bind 首先创建一个函数 function m ...
- call / apply / bind
对于 call / apply / bind 来说,他们的首要目的是用于改变执行上下文的 this 指针. call / apply 对 call / apply 的使用,一般都如下,用于改变执行环境 ...
- 50行javaScript代码实现简单版的 call , apply ,bind 【中级前端面试基础必备】
在实现自己的call,apply,bind前,需要复习一下this. ###所谓的this其实可以理解成一根指针: 其实 this 的指向,始终坚持一个原理:this 永远指向最后调用它的那个对象,这 ...
最新文章
- R语言ggplot2可视化:自定义设置X轴上的时间间隔(中断、以年为单位),使用scale_x_date()自定义设置坐标轴间隔和标签、添加标题、副标题、题注信息
- 运维工程师必备之负载 均衡集群及LVS详解
- UVA11624大火蔓延的迷宫
- Java数据结构和算法:位运算
- ISAPI_Rewrite规则
- List集合ArrayList,LinkList
- 在.NET中使用DiagnosticSource
- 位枚举(Bit Flags)
- 牛客16464 神奇的幻方
- 如何在github上下载某个项目的单独某个目录
- WebSocket connection to,Error during WebSocket handshake: Unexpected response code: 404
- php自定义请求headers,php通过header发送自定义数据方法
- 牛客网 ACM模式单行输入输出规范
- 基于Python的校园学生一卡通管理系统
- 易语言的Java皮肤_易语言软件更换皮肤的方法
- 计算机视觉行业博客和代码汇总
- 2021-2027全球与中国环卫云平台市场现状及未来发展趋势
- jvm jni 及 pvm pybind11 大批量数据传输及优化
- 利用计算机设计产品,计算机在产品设计的应用论文
- python win10 捕获 弹出窗口_[python爬虫] Selenium高级篇之窗口移动、弹出对话框自登录...
热门文章
- 关于近期对Lucene.Net应用研究学习的总结
- ldconfig及LD_LIBRARY_PATH
- canal能监控多个mysql_learning-mysql-canal
- python一点基础都没有的怎么办-为什么我会建议每个大学生都学一点python编程?...
- python数据结构推荐书-自己想学数据结构,有大佬能推荐一下看什么书吗?
- python3-Python3.7.0官方版
- 在当当买了python怎么下载源代码-python爬虫爬取当当网
- 在线python编程编译器-在线编译或编辑Python的5个最佳工具
- 软件测试用python一般用来做什么-python软件测试
- python小游戏编程实例-10分钟教你用Python写一个贪吃蛇小游戏,适合练手项目