JS中的静态属性及实例属性

JavaScript020

JS中的静态属性及实例属性,第1张

在回忆怎么判断一个对象是一个数组的方法时,想到了Array.isArray()这个方法,突然有点不理解,这是什么意思,isArray()怎么可以通过Array直接调用,这样的情况很多,比如Object上的方法。

看了几篇文章,简单理解是:JS中有“静态属性”和实例属性。

定义在构造函数上的属性。只能通过构造函数名来调用。

那么就是说,上面的setName方法可以通过Person来调用,不能通过实例调用。因为setName是其内部方法。 举个例子:

通过打印p,可以看到:

可以发现,myName和getAge属性并没有被实例所继承。

我的理解是: 定义在构造函数原型上的属性及在构造函数内部绑定到this上的属性。这些属性可以通过实例对象直接调用。

这个时候,p可以调用name,age,getName这些属性。

可以通过Object.getOwnpropertyNames()等此类方法查看有哪些属性。

★静态方法 定义的时候,方法名字前面加static 。使用的时候,直接通过类调用。静态方法可以被继承。

★直接通过类名定义的属性。属于静态属性,只能通过类调用,可以继承。

没有静态变量的说法,只有局部变量和全局变量。

要类似静态变量的功能,可以通过如下方式定义:

1、定一个全局对象

var obj = {}

2、在全局对象中增加属性

obj.CONST_A='KKKK'//增加一个属性CONST_A

3、当做静态变量使用

在任何地方都可以直接使用obj.CONST_A表示字符串KKKK