
红宝书
于慨
web前端开发工程师
展开
-
红宝书p252类构造函数和构造函数的区别
【红宝书p252类构造函数和构造函数的区别】1,相同点:两者实例化都必须用new关键字2,不同点,不用new,类构造函数会报错,构造函数this默认为window,但都无法实例化对象成功 <script> function Person() { console.log(this); } // 把 window 作为 this 来构建实例 let p = Person(); console原创 2021-01-09 21:46:58 · 134 阅读 · 0 评论 -
红宝书p251类构造函数
【红宝书p251类构造函数】1,类实例对象的原型被赋值为构造函数的prototype属性<script> class Person { constructor() { console.log('person ctor'); } } let p = new Person(); // person ctor console.dir(Person)原创 2021-01-09 21:37:06 · 121 阅读 · 0 评论 -
红宝书p250类和类实例的结构
【红宝书p250类和类实例的结构】1,查看类的结构<script> // 1,类表达式定义类 //1.1类有名字,赋值给变量 let Person = class PersonName { } console.dir(Person);</script>注意:person的name属性值为PersonName<script> // 1,类表达式定义类原创 2021-01-08 17:51:42 · 178 阅读 · 1 评论 -
红宝书p248寄生式组合继承
【红宝书p248寄生式组合继承】实现原理:定义一个prototype变量,保存Object.create(父类.prototype)的结果,即prototype对象的原型是父类的原型。同时prototype添加constructor属性指向子类。之后再将prototype对象变成子类的原型。1,将父类原型中的方法添加进子类原型中的原型,查看结构<script> function addPrototype(subType, superType) {原创 2021-01-07 22:55:45 · 131 阅读 · 0 评论 -
红宝书p245原型式继承
【红宝书p245原型式继承】1,调用函数,返回一个原型是父类对象的空子对象,查看空子对象结构<script> function object(o) { // 注意:object只是一个普通的函数 // F()相当于子类 function F() { } F.prototype = o; return new F(); } **/原创 2021-01-07 20:17:06 · 185 阅读 · 0 评论 -
红宝书p244组合继承
【红宝书p244组合继承】1,父类属性放构造函数里,方法放原型里,让子类继承后,查看子类结构function SuperType(name){ this.name = name; this.colors = ["red", "blue", "green"];}SuperType.prototype.sayName = function() {//以后子类实例可直接共用,不用重写的属性或方法写入父类的原型里面 console.log(this.name);};function SubTy原创 2021-01-07 01:33:12 · 194 阅读 · 0 评论 -
红宝书p243继承之盗用父类构造函数
【红宝书p243继承之盗用父类构造函数】1,查看继承后,子类父类的结构<script> function SuperType() { this.colors = ["red", "blue", "green"]; } function SubType() { // 继承 SuperType SuperType.call(this); } co原创 2021-01-07 00:59:52 · 283 阅读 · 0 评论 -
红宝书p238继承之原型链(继承父类实例)
【红宝书p238继承之原型链(继承父类实例)】1,让子类的原型是父类的实例,查看子类和父类的结构<script> function SuperType() { // 父类 this.property = true; } SuperType.prototype.getSuperValue = function () { // 父类原型中添加方法 ret原创 2021-01-06 22:14:09 · 116 阅读 · 1 评论 -
红宝书p226构造函数与实例,实例与实例之间的关系
【红宝书p226构造函数与实例,实例与实例之间的关系】1,查看构造函数、实例的结构 function Person(name) { this.name = name } let person = new Person('ike'); // 1,原型和实例的结构 console.dir(Person); console.dir(person);2,构造函数原型对象和实例原型对象console.dir(Person.prototype);c原创 2021-01-06 09:40:20 · 179 阅读 · 0 评论 -
红宝书p224函数的prototype属性
【红宝书p224函数的prototype属性】1,属性添加到构造函数中时1.1函数的prototype属性<script> function Person(name, age, job) { this.name = name; this.age = age; this.job = job; this.sayName = function () {原创 2021-01-05 18:36:34 · 119 阅读 · 0 评论 -
红宝书p220对象解构在参数中的应用
【红宝书p220对象解构在参数中的应用】<script> let person = { name: 'Matt', age: 27 }; function printPerson(f00, { name, age }, bar) { console.log(arguments); // 注意:arguments是系统变量,保存实参对象原创 2021-01-05 16:29:36 · 96 阅读 · 0 评论 -
红宝书p218数字对象的解构
【红宝书p218数字对象的解构】<script> // 对象的解构 // 数值对象解构 // 1,查看数值对象里面的属性 var num = new Number(100); console.log(num); // 2,解构数值对象里面的属性(包括原型里面的) let { constructor: c } = num; console.log(c);//f Numb原创 2021-01-05 16:03:04 · 122 阅读 · 0 评论 -
红宝书p218字符串对象的解构
【红宝书p218字符串对象的解构】查看字符串对象的所有属性<script> // 对象的解构 // 字符串对象解构 // var str = 'foobar';//这种方式无法看到对象里面的属性和方法 var str = new String('foobar'); console.dir(str); </script>解构字符串属性<script> // 对原创 2021-01-05 15:51:23 · 119 阅读 · 0 评论 -
红宝书p215 简写设置、获取函数
简写设置、获取函数1,原始写法 <script> // 原始写法 // 获取函数与设置函数 var obj = { name_: "", name: { get: function () { return this.name_; }, set: function原创 2021-01-05 11:38:16 · 131 阅读 · 0 评论 -
【红宝书p213】es6解决es5无法解决的等值判断问题
【红宝书p213】es6解决es5无法解决的等值判断问题1,es5及之前用===相等判定 <script> console.log(+0 === -0); // true console.log(+0 === 0); // true console.log(-0 === 0); // true </script>无法区分0的正负之分console.log(NaN === NaN); // falseconsole.原创 2021-01-05 11:27:48 · 121 阅读 · 0 评论 -
【红宝书p211】获取函数和设置函数
【红宝书p211】获取函数和设置函数利用获取函数和设置函数完成对象属性的值初始化方式一:计算属性<script> src = { set a(value) { a = value; }, get a() { return a; } }; // 注意:这里不管赋值先后顺序原创 2021-01-05 10:44:20 · 151 阅读 · 0 评论 -
【红宝书p207】访问器属性用法
【红宝书p207】访问器属性用法let book = { // 对象里面的属性实则可以被直接访问 year_: 2017, edition: 1 };准备以上对象,通过访问器属性间接修改对象里面属性的值es5的用法: // es5 Object.defineProperty(book, "year", { get() { return th原创 2021-01-04 18:28:02 · 95 阅读 · 0 评论