zoukankan      html  css  js  c++  java
  • javascript面向对象学习

    我的博客:www.while0.com

    我的博客:www.shishangguan.net

    1.不通过创建对象方式调用构造函数,而是以普通方式运行构造函数,则构造函数中的this指向window,如

    (function(){
        var x=function(){
            this.a='a';
            }
            x();
        })()
    alert(a);

    在这一段中,会跳出a,即使构造函数是声明在闭包中的。而通过实例化方式,this则指向实例化对象的私有作用域

    (function(){
        var x=function(){
            this.a='a';
            }
        var y=new x();
        alert(y.a);
        })()

    通过call和apply方法,则会加到指定对象的作用域中去

        var x=function(){
            this.a='a';
            }
        var y=new Object();
        x.apply(y);
        alert(y.a);//a被加到了y的属性上

    2.①每个对象都有一个constructor指向它的构造函数
       ②在 JavaScript 中,用 new 关键字创建对象是执行了下面三个步骤的:
          1. 创建一个新的普通对象;
          2. 将方法对象的 prototype 属性的所有属性复制到新的普通对象中去。
          3. 以新的普通对象作为上下文来执行方法对象。
     ③prototype只有构造函数有
         constructor只要是对象就有,指向创建它的构造函
         __proto__也是每个对象都有,指向创建它的构造函数的prototype

  • 相关阅读:
    Java
    Java
    Java
    Java
    运算问题
    Idea常用快捷键
    java变量和变量命名规范
    java常用数据类型和基本数据类型转换和进制和大数运算
    java注释和标识符规范
    使用命令行生成的第一个java程序
  • 原文地址:https://www.cnblogs.com/yamadie/p/2835557.html
Copyright © 2011-2022 走看看