摘要:先介绍一下的用法,的用法与之大致相同只不过参数列表略有不同在我看来主要的功能就是在不修改对象的情况下对对象的属性进行重写,使之继承一个新对象的属性先举个简单的例子汽车颜色是速度是价格是汽车颜色是速度是,价格是通过例子可以看出可以方法增加对象
先介绍一下call()的用法,apply()的用法与之大致相同,只不过参数列表略有不同
call()在我看来主要的功能就是在不修改对象的情况下对对象的属性进行 重写,使之继承一个新对象的属性
Symtax: fun.call(thisArg[, arg1[, arg2[, ...]]])
先举个简单的例子:
function vehicle(color, speed) { this.color = color; this.speed = speed; } function car(color,speed,price) { vehicle.call(this,arguments); this.price = price; } var mycar = new car("red", 100, 2000); alert("汽车颜色是" + mycar.color + ", 速度是 " + mycar.speed + ", 价格是" + mycar.price); //汽车颜色是red,速度是100,价格是2000
通过例子可以看出可以call方法增加对象的属性信息,
也可以通过使用call方法覆盖原对象的属性
在举个简单的和作用域结合的例子
var x = 1; function method() { alert(this.x); } var c = {}; c.x = 0; c.m = method; c.m.apply(); //1,此时调用的是全局对象 c.m.apply(c); //0,此时调用的是对象c
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/79364.html
摘要:关于前端中是个老生常谈的问题,总是说不清道不明,看这里。的大致用法,相信接触过前端的同学都知道,无非以下种。先想一下,两次执行后结果是什么。输出总结被谁调用指向谁,没有被调用的情况下,浏览器默认为。由于箭头函数中的,总是指向父级作用域。 关于this 前端中this是个老生常谈的问题,总是说不清道不明,看这里。this只能用在函数里面,相信全世界的人都知道。this就是函数在被执行的时...
摘要:其实它们都很简单,但是在处理一些与相关的函数的时候,用来改变函数中的指向,却是必不可少的工具,所以必须掌握好它们的用法。 关于javascript中的bind、call、apply等函数的用法 我GitHub上的菜鸟仓库地址: 点击跳转查看其他相关文章 文章在我的博客上的地址: 点击跳转 前面的文章已经说到this的指向了,那么这篇文章就要说一说和this相关的三个...
摘要:总是指向一个对象,而具体指向哪个对象是在运行时基于函数的执行环境动态绑定的,而非函数被声明时的环境。参数传入参数的一个数组,参数个数是确定的。接收不确定参数第一个参数一个对象,用于指定的指向,默认不设置或者设置为的情况下指向的是。 this总是指向一个对象,而具体指向哪个对象是在运行时基于函数的执行环境动态绑定的,而非函数被声明时的环境。this的指向大致可以分为以下四种:◎ 作为对象...
摘要:构造器中的指向新对象中,我们通过关键词来调用构造函数,此时会绑定在该新对象上。输出顺便说一句,在中,构造函数普通函数对象方法闭包,这四者没有明确界线。 this 在函数执行时,this 总是指向调用该函数的对象。要判断 this 的指向,其实就是判断 this 所在的函数属于谁。 在《javaScript语言精粹》这本书中,把 this 出现的场景分为四类,简单的说就是: 有对...
摘要:新手经常犯的一个错误是将一个方法从对象中拿出来,然后再调用,希望方法中的是原来的对象。如果不做特殊处理的话,一般会丢失原来的对象。 call、apply、bind是JavaScript中Function函数自带的方法,主要用于改变this的指向 区别: call() 1.语法: fun.call(this, arg1,arg2) 2.this取值的几点说明: (1)处于非严格模式下,...
阅读 1719·2023-04-25 19:37
阅读 1271·2021-11-16 11:45
阅读 2681·2021-10-18 13:30
阅读 2717·2021-09-29 09:34
阅读 1558·2019-08-30 15:55
阅读 3093·2019-08-30 11:10
阅读 1809·2019-08-29 16:52
阅读 976·2019-08-29 13:18