zoukankan      html  css  js  c++  java
  • JS静态变量和静态函数

    本文链接:https://blog.csdn.net/u012790503/article/details/46278521

    function A(){this.id = "我是AA"}            //   在构造函数外定义的都是所有对象共享的
    A.id = "我是A";
    A.sayId = function(){alert(A.id);}
    A.sayId();

    如上,在构造函数外用函数名定义的属性或者方法,可以也只可以通过函数名来访问,这和C++基本一样。

    输出

    试图访问非静态变量时

    function A(){this.id = "我是AA"}            //   在构造函数外定义的都是所有对象共享的
    A.id = "我是A";
    A.sayName = function(){alert(this.id);}
    A.sayName();

    输出

    说明访问不了。

    再看看this是什么

    那么如果用prototype呢?

    function A(){this.id = "我是AA"}            //   在构造函数外定义的都是所有对象共享的
    A.prototype.id = "我是A";
    A.prototype.sayName = function(){alert(this.id);}
    a = new A();
    a.sayName();

    输出

    说明:

    1、输出"我是AA"是因为"我是A"是在之后赋值的,把"我是A"覆盖了。

    2、prototype指向的是一个Object对象,注意它是一个对象,当使用prototype时(或者是定义函数后),会产生一个Object对象,等同于 object = new Object();

    3、通过prototype添加的属性和方法不是静态的,只能通过对象来访问。

  • 相关阅读:
    Oracle导出存储过程
    正在执行的SQL和之前执行的SQL
    查看TEMP使用情况
    Oracle TEMP表空间切换
    VARCHAR2字段关联
    PL/SQL 异常处理
    pl/sql 关于变量定义的问题
    FILTER优化
    PL/SQL拼接和使用绑定变量
    循环处理数据提交
  • 原文地址:https://www.cnblogs.com/laijinquan/p/11384007.html
Copyright © 2011-2022 走看看