function Test(name) {
this.name = name // 实例属性
this.say = function() { // 实例方法
console.log(this.name)
}
let age = 14 // 私有属性
function sing() { // 私有方法
console.log("sing")
}
}
Test.language = 'chinese' // 静态属性
Test.talk = function() { // 静态方法
console.log('talk')
}
Test.prototype.height = 180 // 原型属性
Test.prototype.dance = function() { // 原型方法
console.log('dance')
}
- 私有属性和私有方法在函数体外是不能访问的,如果要访问,可以使用闭包
- 静态属性和静态方法可以在函数外直接访问
- 实例属性和实例方法是绑定到函数实例上的,即函数作为构造函数使用
- 原型属性和原型方法是挂在函数的原型对象上的,如果实例上找不到,会通过原型委托到函数的原型上。但是,当直接访问函数的静态属性和方法时,如果找不到,不会去函数的原型上查找