以前学Java的时候知道静态方法是直接用类名调用的,但是在JavaScript是这样的吗?对,也是一样的,不过在js中类是构造函数。
在上面代码中,定义了构造函数Person,在Person上定义了一个方法say,需要注意的是构造函数也是对象,然后在Person的原型上也定义了个getName方法,接着执行下面的代码:
我们发现Person.say()能执行,而下面一行却会出现错误,原因是getName是定义在prototype对象上的,你用Person对象去调用它肯定不行,当然你也可以这样:
这样是可以执行的,因为在Person构造函数及Person的实例对象上都会有一个prototype属性,指向原型对象Person prototype,当然我们一般是这样调用:
新建一个对象再去调用原型上的方法,直接用构造函数名调用会出错。
Ps:如果喜欢,那就关注我吧!