开胃菜 prototype 对象 JavaScript 语言的继承则是通过“原型对象”(prototype). function Cat(name, color) { // <----构造函数 this.name = name; this.color = color; this.meow = function () { console.log('喵喵'); }; } var cat1 = new Cat('大毛', '白色'); var cat2 = new Cat('二毛', '黑色'); c…
Ref: Class 的基本语法 Ref: Class 的基本继承 许多面向对象的语言都有修饰器(Decorator)函数,用来修改类的行为.目前,有一个提案将这项功能,引入了 ECMAScript. Ref: JavaScript 中的 this 用法以及 call(apply) 的理解 Ref: JavaScript Object-Oriented Programming Tutorial - OOP with E6[简单介绍引入了类后,带来的简单写法] 基础概念 Class关键字 (1)…
这一章,估计是js最操蛋的一部分内容. 现代方法: 简介 Object.getPrototypeOf() super 关键字 类的 prototype 属性和__proto__属性 原生构造函数的继承 Mixin 模式的实现 远古方法: * <Javascript面向对象编程(一):封装>[可略,已看] * <Javascript面向对象编程(二):构造函数的继承> * <Javascript面向对象编程(三):非构造函数的继承> 热身一 调用Object.create…
前言 范围包括:ECMAScript 新功能以及对象. 当前的主要目的就是,JS的学习 --> ECMAScript 6 入门 let 命令 js 因为let, i的范围限制在了循环中. var a = []; for (let i = 0; i < 10; i++) { a[i] = function () { console.log(i); }; } a[6](); 里外不一样作用域. for (let i = 0; i < 3; i++) { // 设置循环变量的那部分是一个父作用…
一段引言: Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大. 它由社区最早提出和实现,ES6 将其写进了语言标准,统一了用法,原生提供了Promise对象. 开胃菜 - 四种方法 Ref: Javascript异步编程的4种方法 Javascript语言将任务的执行模式分成两种:同步(Synchronous)和异步(Asynchronous). *** "同步模式"就是上一段的模式,后一个任务等待前一个任务结束,然后再执行,程序的执行顺序…
扩展运算符(spread) 先复习下 rest 参数. (1) argument模式,但不够好. // https://blog.csdn.net/weixin_39723544/article/details/78460470 function foo(a, b) { var i, rest = []; if (arguments.length > 2) { for (i = 2; i<arguments.length; i++) { rest.push(arguments[i]); } }…
Ref: 对象的扩展 Outline: 属性的简洁表示法 属性名表达式 方法的 name 属性 Object.is() Object.assign() 属性的可枚举性和遍历 Object.getOwnPropertyDescriptors() __proto__属性,Object.setPrototypeOf(),Object.getPrototypeOf() super 关键字 Object.keys(),Object.values(),Object.entries() 对象的扩展运算符 简洁…
今天在阅读代码时,碰到了prototype //判断是否是数组function isArray(obj) { return Object.prototype.toString.call(obj) === '[object Array]';}; //判断是否是functionfunction isFunc(obj) { return Object.prototype.toString.call(obj) === '[object Function]';} // 是否是json对象function…
JS中的prototype是JS中比较难理解的一个部分 本文基于下面几个知识点: 1 原型法设计模式 在.Net中可以使用clone()来实现原型法 原型法的主要思想是,现在有1个类A,我想要创建一个类B,这个类是以A为原型的,并且能进行扩展.我们称B的原型为A. 2 javascript的方法可以分为三类: a -> 类方法 b -> 对象方法 c -> 原型方法 例子: function People(name){ //对象属性 this.name=name; //对象方法 this…
作为一名前端工程师,必须搞懂JS中的prototype.__proto__与constructor属性,相信很多初学者对这些属性存在许多困惑,容易把它们混淆,本文旨在帮助大家理清它们之间的关系并彻底搞懂它们.这里说明一点,__proto__属性的两边是各由两个下划线构成(这里为了方便大家看清,在两下划线之间加入了一个空格:_ _proto_ _),本文基于谷歌浏览器(版本 72.0.3626.121)的实验结果所得.   现在正式开始! 让我们从如下一个简单的例子展开讨论,并配以相关的图帮助理解…