- 博客(9)
- 收藏
- 关注
原创 《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 146
原创 关于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 147
原创 机器会取代人类吗?
有这样一个问题:人的价值体现在哪里?也有这样一个答案:人的价值体现在他的工作成果。但,一个人在工作的时候,他究竟是在干什么?他的工作成果到底是个什么东西?在我看来,工作成果只是表面现象。马克思说人是所有社会关系的总和,那么工作成果也不过是这个关系网上可供他人消费的东西,工作就是消费品的生产过程,人的价值也就体现在生产出可供他人消费的东西。这里的关系网不是什么人情关系,不是人脉,是社会化大生产关...
2018-10-22 20:19:02 562
原创 JavaScript使用原型判断对象类型
1. constructor属性在JavaScript创建对象(二)——构造函数模式中,我们说过可以使用对象的constructor属性判断对象的类型:p1.constructor === Person,可能当时就有细心的读者会想,我们并没有给这个对象添加过constructor,这个属性是从哪儿来的呢?讲过原型之后,我们知道这个属性是原型中的,所以一般重写原型时也都会把constructor补...
2018-10-19 21:31:19 1498
原创 JavaScript创建对象(四)——组合使用构造函数和原型模式
在JavaScript创建对象(三)——原型模式中,我们阐述了原型模式存在的两个问题:一是没办法通过构造函数初始化对象属性,二是共享引用类型的数据导致数据错乱。于是我们提出组合使用两种模式,摒弃它们的缺点,保留它们的优点。为了解决构造函数模式相同功能的函数定义多次的问题,我们提出了原型模式。但是不要忘记,构造函数模式也具备原型模式所缺乏的优点,比如可以通过构造函数初始化对象的属性,同时也没有共享...
2018-10-18 22:41:07 250
原创 JavaScript创建对象(三)——原型模式
在JavaScript创建对象(二)——构造函数模式中提到,构造函数模式存在相同功能的函数定义多次的问题。本篇文章就来讨论一下该问题的解决方案——原型模式。首先我们来看下什么是原型。我们在创建一个函数时,这个函数会包含一个属性prototype,这个属性是一个指针,它指向一个对象——该函数的原型对象,这就是原型,它包含了该函数类型的所有实例可共享的属性和方法,见下面示意图:如图所示,声明了一...
2018-10-18 22:38:42 120
原创 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 124
原创 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 173
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人