在回忆怎么判断一个对象是一个数组的方法时,想到了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_A3、当做静态变量使用
在任何地方都可以直接使用obj.CONST_A表示字符串KKKK