一、公有属性、公有方法
1、定义
指的是所属这个类的所有对象都可以访问的属性,叫做公有属性。
2、理解
一个模子刻出来的东西,都有的一样的属性和一样的能力。
3、ES5
function User(name, age) {
this.name = name; // 公有属性
this.age = age;
}
User.prototype.getName = function () {
// 公有方法
return this.name;
};
var user = new User("FELaoL", 22);
console.log(user.getName()); // FELaoL
4、ES6
class User {
constructor(name, age) {
this.name = name; // 公有属性
this.age = age;
}
getName() {
// 公有方法
return this.name;
}
}
let user = new User("FELaoL", 22);
console.log(user.getName()); // FELaoL
二、私有属性、私有方法
1、定义
私有属性只能在类的内部访问。
2、理解
模子的材质是铁,但从做出来的成品却不能知道模子的材质。
3、ES5
function User(name, age) {
var name = name; // 私有属性
var age = age;
function consoleAge() {
// 私有方法
console.log(age);
}
consoleAge(age); // 22
}
var user = new User("FELaoL", 22);
4、ES6
class User {
height = "178cm"; //公有属性
#age = 25; //私有属性:只能在类的内部调用
constructor(name, age) {
this.name = name; // 公有属性
this.age = age;
this.sex = 0; // 公有属性
let sex = 1; // 私有属性
}
getName() {
return this.name;
}
}
let user = new User("FELaoL", 22);
console.log(user.getName()); // FELaoL
console.log(user.sex); // 22
console.log(user.height); // 178cm
console.log(user.#age); // Uncaught SyntaxError: Private field '#age' must be declared in an enclosing class
三、静态属性、静态方法
1、定义
静态属性指的是 Class 本身的属性, 即Class.propname
, 而不是定义在实例对象( this) 上的属性。定义在实例对象( this)上的属性为非静态属性。
静态方法是定在在类上,而不是定义在类的原型上,类可以调用,类的实例不能调用的方法。
2、理解
本质上是类属性、类方法
3、ES5
function Per() {
}
Per.staticName = "FELaoL"; // 静态属性 是函数对象的属性
Per.call = function () {
console.log("call");
}; // 静态方法
console.log(Per.staticName); // FELaoL
Per.call(); // call
4、ES6
class Person {
static num = 10; // 静态属性
constructor() {
this.name = "张三";
}
static fn() {
// 静态方法
console.log("fn");
}
}
console.log(Person.num); // 10
Person.fn(); // fn
let zhangsan = new Person();
写在最后
如果你感觉文章不咋地
//(ㄒoㄒ)//
,就在评论处留言,作者继续改进;o_O???
如果你觉得该文章有一点点用处,可以给作者点个赞;\\*^o^*//
如果你想要和作者一起进步,可以微信扫描二维码,关注前端老L;~~~///(^v^)\\\~~~
谢谢各位读者们啦(^_^)∠※
!!!
转载:https://blog.csdn.net/weixin_62277266/article/details/129102442
查看评论