首页 > Web开发 > 详细

JS静态变量和静态函数

时间:2019-08-20 17:13:20      阅读:105      评论:0      收藏:0      [点我收藏+]

 

本文链接: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添加的属性和方法不是静态的,只能通过对象来访问。

 

JS静态变量和静态函数

原文:https://www.cnblogs.com/laijinquan/p/11384007.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!