• 创建对象的方式以及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是创建了一个新的函数,但是不立刻执行。

  • 相关阅读:
    Dos命令%date:~0,10%
    SharePoint显示错误信息
    VM打开虚拟机文件报错
    Sharepoint2013切换用户菜单
    批量创建域用户
    通过数据库恢复SharePoint网站
    SharePoint2013修复报错
    js 循环
    js 正则表达式
    阶乘函数
  • 原文地址:https://www.cnblogs.com/yzxyzx/p/11369272.html
Copyright © 2020-2023  润新知