SOURCE

// var Book = function(id,bookName,price) {
//     this.id = id;
//     this.bookName = bookName;
//     this.price = price;
// }

// 如果不使用new创建对象,而直接调用,就会给window对象添加属性
// var b = Book(1,'一号',5.2) 
// console.log(b.id)
// console.log(window.id)

// 解决办法:
// var Book = function(id,bookName,price) {
//     if(this instanceof Book) {
//         this.id = id;
//         this.bookName = bookName;
//         this.price = price;
//     } else {
//         return new Book(id,bookName,price)
//     }
// }
// var b = Book(1,'一号',5.2) 
// console.log(b.id)
// console.log(window.id)

// Book.prototype.a = 1

// console.log(Book.a)

// var book = new Book(2,'二号')

// console.log(book.id)
// console.log(book.bookName)
// console.log(book.a)

// 私有:只能在类或对象内部访问  共有:可在类或对象外部访问
// var Book = function(id,name) {
//     // 类的私有属性:只能在类内部访问
//     var num = 1
//     // 类的私有方法
//     function checkId() {

//     }
//     // 对象共有属性:只能被实例对象访问
//     this.id = id
//     // 对象共有方法:只能被实例对象访问
//     this.getName = function() {}
//     this.setName = function(name) {
//         this.name = name
//     }
//     // 类的构造器
//     this.setName(name)
// }

// Book.x = '40cm' // 类的静态共有属性:只能被类访问
// Book.y = '60cm'
// Book.prototype.z = '10cm' // 共有属性:可被类或实例对象访问

// var book = new Book(1,'一号')
// console.log(book.z)
// console.log(Book.num)


// var BB = (function() {
//     var idx = 1 // 类的静态私有属性
//     var namex = 'bb'
//     return function(id,name) {
//         var idy = 2
//         this.id = id + idx
//         idx++
//         this.name = name
//     }
// })()

// BB.prototype.type = 33

// console.log(BB)

// const bb1 = new BB(3,'三号')
// console.log(bb1.id)
// const bb2 = new BB(3,'三号')
// console.log(bb2.id)
// console.log(bb2.type)
// console.log(BB.idx)


// var CC = (function() {
//     var idx = 2
//     function cc(id) {
//         this.id = idx + 1
//         idx++
//     }
//     cc.prototype.getId = function() {
//         return this.id
//     }
//     return cc
// })()

// console.log(CC)

// const cc1 = new CC(1)

// console.log(cc1.id)
// console.log(cc1.getId())
console 命令行工具 X clear

                    
>
console