zoukankan      html  css  js  c++  java
  • 如何实现new,call,apply,bind的底层原理。

    new做了什么?

    new是用来实例化对象的,当new了一个对象后

    1.创建一个新对象

    2.将构造函数的作用域赋值给新对象(this指向新对象)

    3.执行构造函数里面的代码(为这个新对象添加属性)

    4.返回新的对象

    call,apply,bind的用法

    三个都可以改变函数的this指向

    代码示例:

     
        let a = {
                name: 'xq',
                getname: function (msg) {
                    return msg + this.name
                }
            }
            let b = {
                name: 'ss'
            }
            console.log(a.getname('hello'));
            console.log(a.getname.call(b, 'hi'));
            console.log(a.getname.apply(b, ['hi']));
            let name = a.getname.bind(b, 'hi')
            console.log(name());
    

      

  • 相关阅读:
    sed 练习
    正则表达式
    字符转换命令
    命令执行判断依据
    shell 操作环境
    选取命令
    排序命令
    命令别名与历史命令
    变量的学习
    防止恶意跳转
  • 原文地址:https://www.cnblogs.com/xiaopo/p/14306900.html
Copyright © 2011-2022 走看看