摘要: new运算符工作原理 阅读全文
posted @ 2014-12-30 17:42 小旭的blog 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 1. 图解原型链 1.1 “铁三角关系”(重点) function Person() {}; var p = new Person(); 这个图描述了构造函数,实例对象和原型三者之间的关系,是原型链的基础:(1)实例对象由构造函数new产生;(2)构造函数的原型属性与实例对象的原型对象均指向原型(3 阅读全文
posted @ 2014-12-29 17:01 小旭的blog 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 原型(prototype) 函数的 prototype 属性(图) 每个函数都有一个prototype属性,它默认指向一个Object空对象(即称为:原型对象) 原型对象中有一个属性constructor,它指向函数对象 给原型对象添加属性(一般都是添加方法) 作用:函数的所有实例对象自动拥有原型中 阅读全文
posted @ 2014-12-28 12:03 小旭的blog 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 原型和原型链是 JS 中不可避免需要碰到的知识点,本文使用图片思维导图的形式缕一缕原型、原型链、实例、构造函数等等概念之间的关系。 Constructor 构造函数 首先我们先写一个构造函数 Person,构造函数一般为了区别普通函数要求首字母大写: prototype 原型 原型指的就是一个对象, 阅读全文
posted @ 2014-12-27 22:07 小旭的blog 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 一、工厂模式 流程: 定义一个函数,函数返回对象。 适用场景: 需要创建多个对象,都是Object类型。 优点:完成了返回一个对象的要求。 缺点: 对象没有一个具体的类型,无法通过constructor识别对象, 都是Object类型。多个实例的sayName方法都是实现一样的效果,但是却存储了很多 阅读全文
posted @ 2014-12-25 14:55 小旭的blog 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 1. 简单方式创建对象 虽然Object构造函数或对象字面量都可以用来创建单个对象,但这些方式有个明显的缺点:使用同一个接口创建很多对象,会产生大量的重复代码,如上面的代码,每创建一个类似的person对象,就会重复上面的写法,代码较为冗余 为了解决这个问题(代码重复),下面引入工厂模式 ==> 2 阅读全文
posted @ 2014-12-24 15:45 小旭的blog 阅读(385) 评论(0) 推荐(0) 编辑
摘要: 引 如何区分深拷贝与浅拷贝,简单点来说,就是假设B复制了A,当修改A时,看B是否会发生变化,如果B也跟着变了,说明这是浅拷贝,拿人手短,如果B没变,那就是深拷贝,自食其力。 此篇文章中也会简单阐述到栈堆,基本数据类型与引用数据类型,因为这些概念能更好的让你理解深拷贝与浅拷贝。 我们来举个浅拷贝例子: 阅读全文
posted @ 2014-11-23 19:04 小旭的blog 阅读(506) 评论(0) 推荐(0) 编辑
摘要: 一、JSON.stringify()与JSON.parse()的区别 最近做项目,发现JSON.stringify()使用场景真的挺多,我们都知道JSON.stringify()的作用是将 JavaScript 对象转换为 JSON 字符串,而JSON.parse()可以将JSON字符串转为一个对象 阅读全文
posted @ 2014-11-22 18:57 小旭的blog 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 1、使用 typeof bar "object" 判断 bar 是不是一个对象有神马潜在的弊端?如何避免这种弊端? 使用 typeof 的弊端是显而易见的(这种弊端同使用 instanceof): 从上面的输出结果可知,typeof bar "object" 并不能准确判断 bar 就是一个 Obj 阅读全文
posted @ 2014-11-20 15:04 小旭的blog 阅读(233) 评论(0) 推荐(0) 编辑
摘要: javascript有8种数据类型 值类型 引用类型 判断数据类型有以下4种判断方法 第一种方式: typeof 第二种方式 instanceof 但是这种方式只适合判断object类型 instanceof运算符用来判断一个构造函数的prototype属性所指向的对象是否存在另外一个要检测对象的原 阅读全文
posted @ 2014-11-13 10:27 小旭的blog 阅读(300) 评论(0) 推荐(0) 编辑