JS改变this指向及工厂、构造函数

改变this指向:(继承构造函数原型对象中的方法,要放在所有原型对象方法的上面)

函数名.call( ); 第一个参数必须是指定的对象,方法的原参数,挨个放在后面。

函数名.apply( ); 第一个参数:传入该函数this执行的对象,传入什么强制指向什么,第二个参数开始:数组,把放原有的参数放在一个数组中。

函数名.bind( ); bind用法和call()一样,直接运行方法,但bind返回为新的方法,然后重新调用。

// 无参情况下call
function fun(){
   console.log(this);
};
fun();
fun.call('call');

// 有参情况下call,
function fun1(a,b){
   console.log(this);
};
fun1(2,3);

// call第二个参数开始:将原函数的参数往后顺延一位
fun1.call('call',2,3);

// apply第二个参数开始:数组,把放原有的参数放在一个数组中
fun1.apply('call',[2,3]);

// bind返回新的方法,然后需重新调用 (三种方法)
let c = fun1.bind('call',2,3);
c();
/* fun1.bind('call',2,3)(); */
/* fun1.bind('call')(2,3); */

构造函数与工厂函数:构造函数是系统自动生成对象,存储数值。工厂函数都是手动创建对象来

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值