当前位置: 首页 > news >正文

网站推广的主题温州城乡建设学校

网站推广的主题,温州城乡建设学校,住房和城乡建设厅官方网站,查域名价格Class Class介绍与初体验ES5 通过构造函数实例化对象ES6 通过Class中的constructor实列化对象 Class 静态成员实例对象与函数对象的属性不相通实例对象与函数对象原型上的属性是相通的Class中对于static 标注的对象和方法不属于实列对象#xff0c;属于类。 ES5构造函数继承Cl… Class Class介绍与初体验ES5 通过构造函数实例化对象ES6 通过Class中的constructor实列化对象 Class 静态成员实例对象与函数对象的属性不相通实例对象与函数对象原型上的属性是相通的Class中对于static 标注的对象和方法不属于实列对象属于类。 ES5构造函数继承Class的类继承extends 关键字super 关键字判断继承是否存在私有属性和方法继承 子类对父类方法的重写Class中的getter和setter设置class显示原型与隐式原型关系 ES6提供了更接近传统语言的写法引入Class类这个概念作为对象的模板。通过class关键字可以定义类。基本上,ES6的class可以看作只是亿个语法糖它的绝大部分功能ES5都可以做到新的class写法只是让对象原型的写法更加清晰、更像面向对象编程的语法而已。 知识点 class 声明类 2.constructor 定义构造函数初始化 3.extends 继承父类 4.super 调用父级构造方法 5.static 定义静态方法和属性 6.父类方法可以重写 Class介绍与初体验 ES5 通过构造函数实例化对象 script//1.ES5 通过构造函数实例化对象//手机function Phone(brand,price){this.brandbrand;this.priceprice;}//通过原型对象添加方法Phone.prototype.callfunction(){console.log(我可以打电话);}//实例化对象let Huaweinew Phone(华为,5999);Huawei.call();console.log(Huawei);/scriptES6 通过Class中的constructor实列化对象 script//2.classclass Shouji{//构造方法 名字不能被修改//实例化时会自动执行constructor(brand,price){this.brandbrand;this.priceprice;}//方法必须使用该语法不能使用ES5的对象完整形式call(){console.log(我可以打电话);}}let onePlusnew Shouji(1,1999);console.log(onePlus);/script注意事项 Class必须通过constructor定义属性方法直接写就行在class里面创建方法也不需要写function关键字也不需要用this Class 静态成员 实例对象与函数对象的属性不相通 function Phone(){}Phone.name手机;Phone.changefunction(){console.log(我可以改变世界);}let nokianew Phone();console.log(nokia.name);//打印undefinednokia.change(); //打印Uncaught TypeError: nokia.change is not a function 实例对象与函数对象原型上的属性是相通的 function Phone(){}//构造函数本身也是对象//函数对象的属性只属于函数对象这样的属性称之为静态成员Phone.name手机;Phone.changefunction(){console.log(我可以改变世界);}Phone.prototype.size5.5inch;let nokianew Phone();console.log(nokia.size);//打印5.5inchClass中对于static 标注的对象和方法不属于实列对象属于类。 class Phone{static name手机;static change(){console.log(我可以改变世界);}}let nokia new Phone();console.log(nokia.name); //打印undefindconsole.log(Phone.name);//打印手机以class方法展示因为ES6明确规定Class内部只有静态方法没有静态属性而要想得到设置静态属性需要在实例属性前面加上 static 关键字静态方法也要加上 static 关键字表示该方法不会被实例继承而是直接通过类来调用。 ES5构造函数继承 //手机function Phone(brand,price){this.brandbrand;this.priceprice;}Phone.prototype.callfunction(){console.log(我可以打电话);}//智能手机function SmartPhone(brand,price,color,size){Phone.call(this,brand,price);this.colorcolor;this.sizesize;}//设置子级构造函数的原型SmartPhone.prototypenew Phone;SmartPhone.prototype.constructorSmartPhone;//声明子类的方法SmartPhone.prototype.photofunction(){console.log(我可以拍照);}SmartPhone.prototype.playGamefunction(){console.log(我可以玩游戏);}const chuizinew SmartPhone(,2499,黑色,5.5inch);console.log(chuizi);Class的类继承 extends 关键字 贴合传统语言面向对象的写法 /*代码简洁非常贴合传统语言面向对象的写法*/class Phone{//构造方法constructor(band,price){this.bandbarnd;this.priceprice;}//父类的成员属性call(){console.log(我可以打电话);}}class SmartPhone extends Phone{//构造方法constructor(band,price,color,size){super(band);//父类的构造方法this.colorcolor;this.sizesize;}photo(){console.log(拍照);}playGame(){console.log(玩游戏);}}const xiaominew SmartPhone(小米,799,黑色,4.7inch);console.log(xiaomi);xiaomi.call();xiaomi.photo();xiaomi.playGame();class可以通过 extends 关键字实现继承让子类继承父类属性和方法可以看出 extends 的写法比上文 原型链继承 清晰方便的多。 super 关键字 上面代码用到 super 这个关键字这里简单说明一下子类继承父类的 constructor() 构造函数中必须要有 super()代表调用父类的构造函数没有就会报错super虽然代表父类的构造函数但是返回的是子类的实例即super内部的this指的是子类的实例。作为函数时super() 只能用在子类的构造函数中用在其他地方就会报错 判断继承是否存在 Object.getPrototypeOf()方法可以用来从子类上获取父类所以可以用来判断一个类是否继承另一个类。 scriptclass people {}class boy extends people {}console.log(Object.getPrototypeOf(boy) people);//true /script私有属性和方法继承 私有属性和方法只能定义在它本身的class里面使用所以子类会继承父类所有的属性和方法除了私有属性和方法那么如何让子类访问到父类中的私有属性和方法呢如果父类定义了私有属性的读写方法子类就可以通过这些方法读取私有属性。 scriptclass people {#name 张三// 定义用来读取私有属性和方法的函数getName(){return this.#name}}class boy extends people {constructor(){// 调用父类的构造函数super()console.log(this.getName());//张三}}let b new boy() /script子类对父类方法的重写 类似于JavaC#C面向对象语言子类也可以对父类方法的重写。区别的时候面向对象通常使用overwrite关键字标记这个重写的方法。而ES6中则直接标记与父类的同名方法。 class SmartPhone extends Phone{//构造方法constructor(band,price,color,size){super(band);//父类的构造方法...}....call(){console.log(我可以进行视频通话);}}注意普通的成员方法中是不可以调用super() Class中的getter和setter设置 在ES6中类的内部可以使用 getter (取值函数) 和 setter (存值函数) 关键字即 get 和 set 对某个属性设置取值函数和存值函数拦截该函数的存取行为。 //get 和set 对对象属性方法的绑定class Phone{get price(){console.log(价格属性被读取了);return iloveyou //get 有返回值}set price(newVal){console.log(价格属性被修改了);}}//实列化对象let snew Phone();console.log(s.price);s.pricefree;class显示原型与隐式原型关系 每个对象都有隐式原型 proto 属性指向对应的构造函数的显示原型 prototype 属性class作为构造函数的语法糖同时也具有 prototype 属性和 proto 属性所以存在两条继承链。当然这里这做一个了解。 scriptclass people {}class boy extends people{}// 子类的__proto__属性表示构造函数的继承总是指向父类。console.log(boy.__proto__ people); // true// 子类prototype属性的__proto__属性表示方法的继承总是指向父类的prototype属性。console.log(boy.prototype.__proto__ people.prototype); // true /script
http://www.yutouwan.com/news/395804/

相关文章:

  • 文化传媒网站建设上海网站开发外包公司
  • 网站右下角广告展示代码300平方别墅装修大约多少钱
  • 石家庄网站优化排名推广wordpress 4.5.2模板
  • 做meta分析需注册的网站京东如何进行网站建设
  • 杭州投资公司自适应网站品牌网站建设小蝌蚪a
  • 上海网站建设哪家服务好微信小程序开发服务商
  • 视频网站建设公司上饶招聘网站建设公司
  • 网站建设需要哪些人二维码分销系统
  • flash 网站制作做渲染的网站
  • 代理ip做网站流量东莞网站建设有什么网络公司
  • 婚恋网站开发平台代理招商wordpress基础服务器
  • 泉州网站建设培训济宁网站开发公司
  • 一个域名下多个网站广州网捷网站建设技术有限公司
  • 微商做图王官方网站重庆建设工程信息网一般多长时间解除屏蔽
  • 外管局网站上做预收登记wordpress语音插件下载
  • 南通建设信息网站外链建设原则
  • 广东网站建设制作wordpress修改登录地址
  • 网站开发最重要的技巧wordpress文章分类能编辑
  • 购买一个网站需要多少钱?医学网站建设风格
  • 免费网站空间有什么用省市网站建设考核标准要求
  • 网站代码的重点内容是什么网站访问统计 曲线图
  • asp网站漏洞修复插件门户 网站开发周期
  • 建设创意网站开发小程序费用一览表
  • 免费做网站自助建站wordpress模板怎么改成织梦模板
  • 网站持有者和备案企业请拿笔记记下新域名
  • 做外国人的生意哪家网站好c 建设网站iis
  • 网站经营许可备案号php网站发送邮件
  • 软文推广代理大连seo加盟
  • 专业做涂料网站做外贸是不是必须有网站
  • 韩国做美食的视频网站有哪些主要的网站开发技术