![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
javascript
文章平均质量分 58
Bob2100_
Bob的技术积累
展开
-
JavaScript创建对象(一)——工厂模式
使用Object构造函数是js中创建对象最简单的一种方式:var person = new Object();person.name = 'Bob';person.age = 18;person.job = '全栈工程师';person.sayName = function(){ console.log(this.name);}创建对象还可以使用对象字面量的方式,像下面这...原创 2018-10-18 22:24:21 · 156 阅读 · 0 评论 -
JavaScript创建对象(二)——构造函数模式
在JavaScript创建对象(一)—— 工厂模式中留下了一个问题,就是创建一个对象怎么判断一个对象的类型。换句话说使用下面这种方式:function createPerson(name, age, job){var o = new Object(); o.name = name; o.age = age; o.job = job; o.sayName = fu...原创 2018-10-18 22:35:40 · 96 阅读 · 0 评论 -
JavaScript创建对象(三)——原型模式
在JavaScript创建对象(二)——构造函数模式中提到,构造函数模式存在相同功能的函数定义多次的问题。本篇文章就来讨论一下该问题的解决方案——原型模式。首先我们来看下什么是原型。我们在创建一个函数时,这个函数会包含一个属性prototype,这个属性是一个指针,它指向一个对象——该函数的原型对象,这就是原型,它包含了该函数类型的所有实例可共享的属性和方法,见下面示意图:如图所示,声明了一...原创 2018-10-18 22:38:42 · 109 阅读 · 0 评论 -
JavaScript创建对象(四)——组合使用构造函数和原型模式
在JavaScript创建对象(三)——原型模式中,我们阐述了原型模式存在的两个问题:一是没办法通过构造函数初始化对象属性,二是共享引用类型的数据导致数据错乱。于是我们提出组合使用两种模式,摒弃它们的缺点,保留它们的优点。为了解决构造函数模式相同功能的函数定义多次的问题,我们提出了原型模式。但是不要忘记,构造函数模式也具备原型模式所缺乏的优点,比如可以通过构造函数初始化对象的属性,同时也没有共享...原创 2018-10-18 22:41:07 · 237 阅读 · 0 评论 -
JavaScript使用原型判断对象类型
1. constructor属性在JavaScript创建对象(二)——构造函数模式中,我们说过可以使用对象的constructor属性判断对象的类型:p1.constructor === Person,可能当时就有细心的读者会想,我们并没有给这个对象添加过constructor,这个属性是从哪儿来的呢?讲过原型之后,我们知道这个属性是原型中的,所以一般重写原型时也都会把constructor补...原创 2018-10-19 21:31:19 · 1485 阅读 · 0 评论 -
《JavaScript高级程序设计(第3版)》阅读笔记
第6章 面向对象的程序设计6.2 创建对象6.2.1 工厂模式JavaScript创建对象(一)—— 工厂模式6.2.2 构造函数模式JavaScript创建对象(二)——构造函数模式6.2.3 原型模式JavaScript创建对象(三)——原型模式6.2.4 组合使用构造函数模式和原型模式JavaScript创建对象(四)——组合使用构造函数和原型模式自总结JavaScri...原创 2018-10-22 19:30:40 · 114 阅读 · 0 评论 -
关于JavaScript原型属性若干特点的分析
1. delete关键字对象属性会屏蔽原型属性,通过delete删除对象的属性,可以继续访问原型属性,达到解除屏蔽的目的,看如下代码:function Person(name, age, job){ this.name = name; this.age = age; this.job = job; this.friends = ['小明', '小刚'];}...原创 2018-10-28 09:01:35 · 135 阅读 · 0 评论