前端笔记六(js面向对象的公有属性与私有属性)

定义:

公有属性:是指在对象外可以访问到对象内的某个属性。
私有属性:只在函数内部可以访问,外部强行访问则会报错。

公共属性方法:

function Public(name, age) {
    this.name = name
    this.age = age
}
Public.prototype = ({
    who: function () {
        console.log(this.name)
    },
    old: function () {
        console.log(this.age)
    }
})
var Public = new Public('小雨', 30);
Public.who() // 小雨
Public.old() // 30

私有属性和方法:

function Private(name, age) {
    var name = name
    var age = age
    var who = function () {
        console.log(name)
    }
    var old = function () {
        console.log(age)
    }
    this.init = function () {
        who()
        old()
    }
}
 
var Private = new Private('小雨', 30)
Private.init()  // 小雨  30
Private.who() // TypeError: Private.who is not a function
Private.old()

通过this或者prototype暴露的方法就是共用属性方法,比如var定义在内部的方法就算私有属性方法

你可能感兴趣的:(前端笔记六(js面向对象的公有属性与私有属性))