zoukankan      html  css  js  c++  java
  • JS中的new对象过程

    当用new创建类的实例时,解释器首先会创建一个空的对象(相当于创建了一个新的作用域),把原型对象指向这个函数的原型对象,将this指针指向创建的上步创建的空对象然后运行这个函数。

    代码理解为:

    var a={};
    function b(var){
        //这里相当于写构造函数
        
    this.hi=function(){
            alert(var);
        }
    }
    //a.__proto__=b.__proto__#只能运行在FIREFOX上
    b.call(a,
    "hi");//call apply 用于对象方法
    a.hi();

    而Function对象在执行JS代码时候是先执行生产的

    var a=function(){};
    a();//跟上面的差别是少了新创建作用域,少了原生链指向
    //
    相同:均在一个作用域里运行了代码

    ()的作用

    var a=function(){};
    var b=new a();//无参数的时候省略为 new a;其实()还是有的
    var c=a();
    //()的作用是相同的 但new的时候会出创建一个新的作用域,之后在新的作用域运行
    简化版:
    var b=new (function(){})();
    var c=(function(){})();
  • 相关阅读:
    VS快捷键
    IIS部署WCF
    WLAN的优点
    局域网与WAN比较
    局域网拓扑结构
    局域网协议
    局域网介绍
    wifi主要特性
    wifi发展前景
    Wi-Fi与WAPI主要区别
  • 原文地址:https://www.cnblogs.com/liushannet/p/1971849.html
Copyright © 2011-2022 走看看