![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JS对象
文章平均质量分 65
FAA.
good good study, day day up
展开
-
V8 快属性与慢属性
快属性与慢属性js对象是由一组组属性和值组成的集合,而js语言的角度来讲,js对象像一个字典,属性为键名,属性值为键值,通键名读取键值。而 V8 实现对象存储时,并没有采用字典的存储方式,原因是字典的数据结构是非线性的,存取速度会比线性数据结构慢很多。常规属性和排序属性// 常规属性和排序属性function Foo(){ this[100] = '100'; this[1] = '1'; this['b'] = 'b'; this[10] = '10';原创 2021-11-02 11:16:19 · 300 阅读 · 0 评论 -
js 中的继承
js 中的继承(一)原型链继承原理: 通过修改构造函数的原型指针指向一个类的实例不足:不能给父类构造函数传递参数,父类中的引用类型属性共享function SuperType() { this.property = true;}SuperType.prototype.getSuperValue = function () { return this.property;};function SubType() { this.subproperty = false原创 2021-11-02 09:27:44 · 66 阅读 · 0 评论 -
原型与原型链
原型与原型链原型无论何时,只要创建一个函数,就会按照特定的规则为这个函数创建一个 prototype 属性(指向原型对象)。默认情况下,所有原型对象自动获得一个名为 constructor的属性,指回与之关联的构造函数。function Person(name, age){ this.name = name; this.age = age; } const p = new Person('小明',21); console.log(p); // co原创 2021-10-30 23:24:39 · 64 阅读 · 0 评论 -
js对象的数据属性、访问器属性和属性枚举
对象属性属性的类型js对象的分两种:**数据属性 **和 访问器属性(一) 数据属性顾名思义,数据属性就是用来直接保存数据的属性,一般情况下,我们都只会定义和操作数据属性1. configurable 定义属性是否可以为 delete 重新定义或修改为访问器属性,默认 true2. enumerable 定义属性是否可以被枚举,默认 true3. writable 定义属性是否可以被修改,默认 true4. value 属性的值显性设置属性的参数 1. writable 测试原创 2021-10-30 22:09:18 · 281 阅读 · 0 评论 -
对象标识和相等判断
对象标识和相等判断判断 对象是否的相等的方法,对于不同的情况,需要用到不同的方法,比较常用的有 三等号 “===”, isNaN(number)函数, Object.is(obj1, obj2)方法三等号 ===对象实例相等判断 function Person(name){ this.name = name; }const p1 = new Person('小明');const p2 = new Person("小明");console.log(p1 === p2); //原创 2021-10-30 19:33:33 · 98 阅读 · 0 评论 -
对象合并混入
对象合并混入在 MVVM 框架中有 mixin 混入功能,它的作用就是把 每个对象 功能的特性都抽出来整合成一个 或多个 源对象,再把这些源对象混入(合并)到需要这些共有功能的目标对象中,比如 VUE 的 mixinES6 新增了 Object.assign 功能来合并对象个人觉得混入(合并)功能跟 继承的目的有点相同, 合并对象是一种**面向切面编程(AOP)的开发模式,而继承是面向对象(OOP)**的开发模式 const dogTarget = { name: 'jack',原创 2021-10-30 17:21:42 · 112 阅读 · 0 评论 -
对象属性的动态与静态
对象属性的动态与静态我们想要把a设置为obj的属性,当a变化时,obj.a也跟着改变 let a = 1; const obj = { a } a++; console.log(a, obj.a); // a = 2, obj.a = 1;为什么会这样? 其实是源于 js 值的赋值,对于基本的数据类型是拷贝值的,会赋值一份与当前值相同的数据到一个新的值上,两者是没有任何联系的。如果a是原创 2021-02-18 17:46:30 · 1211 阅读 · 2 评论 -
js不同方式创建对象的优缺点
对象创建Object构造函数字面量创建特点:创建具有同样接口的多个对象需要重复编写很多代码。工厂模式创建特点:没有解决对象标识问题(即不知道新创建的对象是什么类型) function createPerson(name, age, job) { let o = new Object(); o.name = name; o.age = age; o.job = jo原创 2021-03-01 21:42:58 · 135 阅读 · 0 评论