zoukankan      html  css  js  c++  java
  • this,call,apply,bind

    prototype 属性允许您向对象添加属性和方法

    注意: Prototype 是全局属性,适用于所有的 Javascript 对象。

    function employee(name,jobtitle,born){
        this.name=name;
        this.jobtitle=jobtitle;
        this.born=born;
    }
    var fred=new employee("Fred Flintstone","Caveman",1970);
    employee.prototype.salary=null;
    fred.salary=20000;
    document.write(fred.salary);

    this 在函数的指向有以下几种场景:

    作为构造函数被 new 调用;
    作为对象的方法使用;
    作为函数直接调用;
    被 call、apply、bind 调用;
    箭头函数中的 this;

    new绑定

    new绑定>显示绑定>隐式绑定>默认绑定

    箭头函数的this绑定是无法通过call apply bind 被修改的 

    var a = 20
    
    var obj = {
        a: 40,
        foo:() => {
            console.log(this.a)
        
            function func() {
                this.a = 60
                console.log(this.a)
            }
        
            func.prototype.a = 50
            return func
        }
    }
    
    var bar = obj.foo()        // 浏览器中输出: 20
    bar()                      // 浏览器中输出: 60
    new bar()                  // 浏览器中输出: 60
  • 相关阅读:
    Java Mybatis 传参方式
    html Js跨域提交数据方法,跨域提交数据后台获取不到数据
    uuidgen
    shell 案例
    docker搭建tomcat环境
    redis主从+哨兵模式(借鉴)
    ansible-playbook 案例
    NFS
    mysql -sql语句
    定时任务crontab命令
  • 原文地址:https://www.cnblogs.com/webcyh/p/11291302.html
Copyright © 2011-2022 走看看