原生JS(es5)中的靜態方法:
//原生JS中的靜態方法
function Person(name, age) {
this.name = name;
this.age = age;
this.run = function () {
console.log(`${this.name} is ${this.age}歲`)
}
}
Person.prototype.sex = '男'
Person.prototype.work = function () {
console.log(`${this.name} is ${this.sex} and ${this.age}歲`)
}
//靜態方法
Person.fun = function () {
console.log("fun 靜態方法")
}
var p = new Person('jack', 20) //實例方法是通過實例化來調用的
p.run()
p.work()
Person.fun() //靜態方法調用,直接通過類名調用
/**
* jack is 20歲
jack is 男 and 20歲
fun 靜態方法
*/
ES6 中的靜態方法:
通過 static 關鍵字
//es6里面的靜態方法
class Person {
constructor(name) {
this._name = name; //屬性
}
run() { //實例方法
console.log("實例方法",this._name);
}
static work() { //靜態方法
console.log('work 靜態方法');
}
}
Person.value = '這是一個靜態方法的屬性';
var p = new Person('jack');
p.run();
Person.work(); //es6里面的靜態方法執行
console.log(Person.value);
/**
* 實例方法 jack
work 靜態方法
這是一個靜態方法的屬性
*/
