美文网首页
JavaScript类:(二)属性

JavaScript类:(二)属性

作者: fanren | 来源:发表于2022-10-19 14:13 被阅读0次

上文中,介绍了类的定义,同时举例,在构造函数(constructor)中声明了两个实例属性;
但是构造函数中声明属性,代码不够清晰;

一、声明属性(新写法)

ES2022为类的实例属性,又规定了一种新写法。实例属性现在除了可以定义在constructor()方法里,也可以定义在类内部的最顶层;

class Person {
    name = ''
    age = ''
    getUserName() {
        return this.name;
    }
}

把实例属性定义在类的头部,代码更整齐,可以很清晰的看到所有属性,方便代码的阅读;

二、静态属性

静态属性,是类本身的属性,而不是对象的实例属性;
静态属性通过static关键字声明;

class Person {
    // 静态属性
    static version = 5
}
console.log(Person.version);
let person1 = new Person()
console.log(person1.version);
结果

静态属性只能通过Class.propName来调用;

三、私有属性

私有属性,是指只能在类内部访问的属性,不能再类的外部调用;
私有属性,需要在属性名之前加#来表示;

class Person {
    #id = '123456'
    getId() {
        return this.#id;
    }
}
let person1 = new Person()
console.log(person1.getId()); // 输出123456
console.log(person1.#id);  //报错
结果

私有属性,只能在类内部调用,外部调用会报错;

四、settergetter函数

在“类”的内部可以使用get和set关键字,对某个属性设置存值函数和取值函数,拦截该属性的存取行为

class Person {    
    #name = ''
    set name(value) {
        console.log('setter')
        this.#name = value
    }
    get name() {
        console.log('getter');
        return this.#name;
    }
}
let person1 = new Person()
person1.name = "zhangsan";
console.log('---------')
let name = person1.name;
console.log(name);
结果

五、属性表达式

类的属性名,可以采用表达式。

let propName = "name"
class Person {    
    [propName] = ""
}
let person1 = new Person()
person1.name = "zhangsan";
let name = person1.name;
console.log(name);
结果

相关文章

  • JavaScript类:(二)属性

    在上文[https://www.jianshu.com/p/7d4c3cf8a89d]中,介绍了类的定义,同时举例...

  • javascript的对象属性

    javascript的对象属性分为两类: 数据属性和访问器属性 数据属性: value:属性的值 writable...

  • javaScript基础04

    0.补充:align属性 1.javaScript组成: 2.js与html结合 3.javaScript的数据类...

  • JavaScript Number对象

    JavaScript Number对象是JavaScript数字的包装类,Number对象有预定义的属性和一些数字...

  • 39_了解JavaScript中的装饰器吗?聊一下JS中的get

    JavaScript中的装饰器 JavaScript中,装饰器是一种用于修饰类(class)、方法、属性的装饰,装...

  • TypeScript 基础 — 类

    TypeScript 向 JavaScript 类添加类型和可访问性修饰符。 类成员的类型 类的成员(属性和方法)...

  • 09.属性方法分类

    1.在JavaScript中属性和方法分类两类 1.1实例属性/实例方法在企业开发中通过实例对象访问的属性, 我们...

  • javascript实现继承

    javascript实现继承 原理 1 利用函数的call方法改变this指向,让子类有父类的属性 2 遍历父类的...

  • JavaScript 对象篇

    javascript对象的继承和Object对象 对象的一个类可以从现有的类中派生,并且拥有现有的类的方法或是属性...

  • javascript对象的继承和object对象

    javascript对象的继承和object对象 对象的一个类可以从现有的类中派生,并且拥有现有的类的属性或者方法...

网友评论

      本文标题:JavaScript类:(二)属性

      本文链接:https://www.haomeiwen.com/subject/craezrtx.html