js 面向对象例子

var Book = function (id, name, price) {
        //private(在函数内部定义,函数外部访问不到,实例化之后实例化的对象访问不到) var num = 1; var id = id; function checkId() { console.log('private') } //protected(可以访问到函数内部的私有属性和私有方法,在实例化之后就可以对实例化的类进行初始化拿到函数的私有属性) this.getName = function () { console.log(id) } this.getPrice = function () { console.log(price) } //public(实例化的之后,实例化的对象就可以访问到了~) this.name = name; this.copy = function () { console.log('this is public') } } //在Book的原型上添加的方法实例化之后可以被实例化对象继承 Book.prototype.proFunction = function () { console.log('this is proFunction') } //在函数外部通过.语法创建的属性和方法,只能通过该类访问,实例化对象访问不到 Book.setTime = function () { console.log('this is new time') } var book1 = new Book('111','悲惨世界','$99') book1.getName(); // 111 getName是protected,可以访问到类的私有属性,所以实例化之后也可以访问到函数的私有属性 book1.checkId(); //报错book1.checkId is not a function console.log(book1.id) // undefined id是在函数内部通过定义的,是私有属性,所以实例化对象访问不到 console.log(book1.name) //name 是通过this创建的,所以在实例化的时候会在book1中复制一遍name属性,所以可以访问到 book1.copy() //this is public book1.proFunction(); //this is proFunction Book.setTime(); //this is new time book1.setTime(); //报错book1.setTime is not a function

转载于:https://www.cnblogs.com/zuichumx0826/p/9355399.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值