SOURCE

// es5 原本的构造函数
function Phone (brand,price) {
    this.brand = brand 
    this.price = price 
}
//  添加方法
Phone.prototype.call = function () {
    console.log('我可以打电话')
}
Phone.name = 'hahaha'      //当前属性属于函数对象    统称静态成员
Phone.todo = function (){  //当前属性属于函数对象
    console.log('666')
}

Phone.prototype.size = '5.5inch'  //当前属性属于函数对象
let Huawei = new Phone('华为',5999)

console.log(Huawei)

// console.log(Huawei.name) //undefined
// console.log(Huawei.todo) //not a function 
// console.log(Huawei.size) //5.5inch
// !! 函数对象与实例对象的属性是不相通的,   实例对象的属性 只有跟构造函数的原型属性是同的

//  class 语法
class phone{
    // 静态(static)属性  属于类,不属于构造方法
    static name = '手机'
    static change () {
        console.log('我可以改变世界')
    }
    // 构造方法 ,名字 constructor 不能修改
    constructor (brand,price){
        this.brand = brand 
        this.price = price 
    }
    // 方法必须使用该语法不支持 es5的对象完整形式
    call () {
        console.log('我可以打电话')
    }

    callname () {
        console.log(this.name)
    }


    
}

let onePlus = new phone("1+",5965)
console.log(onePlus)        //和普通构造函数 一样
console.log(onePlus.name)   //undefined
console.log(phone.name)     //手机



console 命令行工具 X clear

                    
>
console