12 2014 档案
摘要:Array.prototype 先记住一句话——每一个函数,都有一个prototype属性——每一个函数,无论是你自定义的,还是系统内置的 这里打印出来的fn.prototype是一个对象,只有一个constructor属性,指向该函数自身,即 以上是自定义的函数,数组构造函数Array也是一个函数
阅读全文
摘要:1. 图解原型链 1.1 “铁三角关系”(重点) function Person() {}; var p = new Person(); 这个图描述了构造函数,实例对象和原型三者之间的关系,是原型链的基础:(1)实例对象由构造函数new产生;(2)构造函数的原型属性与实例对象的原型对象均指向原型(3
阅读全文
摘要:原型(prototype) 函数的 prototype 属性(图) 每个函数都有一个prototype属性,它默认指向一个Object空对象(即称为:原型对象) 原型对象中有一个属性constructor,它指向函数对象 给原型对象添加属性(一般都是添加方法) 作用:函数的所有实例对象自动拥有原型中
阅读全文
摘要:原型和原型链是 JS 中不可避免需要碰到的知识点,本文使用图片思维导图的形式缕一缕原型、原型链、实例、构造函数等等概念之间的关系。 Constructor 构造函数 首先我们先写一个构造函数 Person,构造函数一般为了区别普通函数要求首字母大写: prototype 原型 原型指的就是一个对象,
阅读全文
摘要:一、工厂模式 流程: 定义一个函数,函数返回对象。 适用场景: 需要创建多个对象,都是Object类型。 优点:完成了返回一个对象的要求。 缺点: 对象没有一个具体的类型,无法通过constructor识别对象, 都是Object类型。多个实例的sayName方法都是实现一样的效果,但是却存储了很多
阅读全文
摘要:1. 简单方式创建对象 虽然Object构造函数或对象字面量都可以用来创建单个对象,但这些方式有个明显的缺点:使用同一个接口创建很多对象,会产生大量的重复代码,如上面的代码,每创建一个类似的person对象,就会重复上面的写法,代码较为冗余 为了解决这个问题(代码重复),下面引入工厂模式 ==> 2
阅读全文