面向对象-静态属性和方法

类型和对象的关系

- 类型:数据类型的简称,是一个概念,是一个称呼,是一对具有共同属性和相似行为的对象的模板!一个类型下可以创建多个对象!

- 对象:实际存在的一个事物,属于某个指定的类型

类型中的属性:

- 静态属性:属于类的属性,只能被类访问,不能被对象访问;

- 成员属性:简称属性,属于对象的属性,可以被创建的对象访问;每个对象的成员属性数据都是互相独立的

类型中的方法:本质上就是函数,函数出现在类中称为方法

- 静态方法:属于类的方法,只能被类访问,不能被对象访问

- 成员方法:简称方法或者对象的函数,属于对象的,只能被对象访问;不同对象各自的方法都是互相独立的

// 有一种当前类型固有的属性,不属于对象
        // 1.原生js,通过挂载到prototype原型对象上实现
        function Person() {}
        Person.prototype.MAX_AGE = 120  // 人类型的最大年龄

        // 2.ES6中,属于类型的属性和方法,通过静态属性和静态方法体现
        class Article {
            // 静态属性:属于类型的属性
            static MAX_WORDS = 2000
            // 静态方法:属于类型的方法
            static SHOW() {
                console.log("欢迎进入社交平台")
            }

            // 成员属性:属于对象的属性
            constructor(title, content) {
                this.title = title
                this.content = content
            }
            // 成员方法:属于对象的方法
            edit(title, content) {
                this.title = title
                this.content = content
            }

        }

        // 创建一个文章对象
        var article = new Article("TIOBE排行榜", "Python占据10月份排行榜第一名")
        // 使用文章对象中的数据
        // ① 成员属性,通过对象直接使用
        console.log(article.title, article.content)
        // 成员方法,通过对象直接调用
        article.edit("TIOBE排行", "JavaScript占据的市场在上升")
        console.log(article.title, article.content)

        // ② 静态属性:不能被对象直接调用
        // console.log(article.MAX_WORDS)
        // article.SHOW()
        // 静态属性,只能由类型调用
        console.log(Article.MAX_WORDS)
        Article.SHOW()
        // 如果非要通过对象访问静态属性/方法,可以通过原型链访问:不推荐
        // ES6新的面向对象的语法,是一种语法上的优化;并没有从底层实现上进行重构!
        console.log(article.__proto__.constructor.MAX_WORDS)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值