类方法,静态方法,实例化方法的区别

Posted 铅笔画不出的黑白

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类方法,静态方法,实例化方法的区别相关的知识,希望对你有一定的参考价值。

学习javascript的同学尤其是一些初级学员很难弄清什么,类方法、静态方法、动态方法、实例化方法。虽然有些都一样,但是叫法不同。本着互联网分享精神,今天我就将我自己的见解分享给大家,希望能有所帮助。

开始

  创建一个类

function User(name, age) {
    this.name = name;
    this.age = age;
}

   创建一个类的静态方法(也叫类方法)

User.getClassName = function () {
    return ‘User‘;
};

  调用静态方法

  静态方法是在构造函数本身上定义的方法,只能通过构造函数本身调用,new出来的对象不能够调用。因为这个方法的执行者是这个类,不是这个类的实例。

console.log(User.getClassName(), ‘静态方法调用‘);

  创建动态方法(也叫做实例化方法)

  动态方法,也叫做实例方法,它是通过prototype原型对象添加的,所有的实例对象都能够继承调用

User.prototype.changeName = function (name) {
    this.name = name;
};
User.prototype.changeAge = function (age) {
    this.age = age;
};
Object.defineProperty(User.prototype, ‘info‘, {
    get(){
        return ‘name:‘ + this.name + ‘|age:‘ + this.age;
    }
});

  实例化这个类

var user = new User(‘leo‘, 22);
//调用实例化方法(也叫动态方法) console.log(user.info);

 

以上是关于类方法,静态方法,实例化方法的区别的主要内容,如果未能解决你的问题,请参考以下文章

在静态方法中new 一个内部类对象和new 一个外部类对象的区别

PHP静态方法与非静态方法用法及区别

PHP中静态方法和实例化方法的区别

python中静态方法(@staticmethod)和类方法(@classmethod)的区别

在JAVA中, 静态方法和一般方法有啥区别?

static方法和非static方法的区别