- 浏览: 47938 次
- 性别:
- 来自: 北京
最新评论
-
MirrorAvatar:
thc1987 写道不错挺好的,LZ能否帮忙解释下YUI的继承 ...
ECMAScript原型链 -
thc1987:
不错挺好的,LZ能否帮忙解释下YUI的继承体系extend:f ...
ECMAScript原型链
文章列表
最近开发后台管理系统,一直使用这个.
Github地址:基于Vue2 Webpack2 ElementUI的多页应用脚手架
题外话:
只有自己尝试写个框架,才有机会接触像原型、作用域、事件代理、缓存系统、定时器等深层知识。
司徒正美《JavaScript框架设计》
起源
单独使用原型链继承:
优点,利用prototype实现了数据的共享,以此来实现继承。
缺点,当涉及到引用类型(比如说数组)的时候,一个实例
基本概念
借用构造函数(constructor stealing)进行继承的基本思想就是:在子类型构造函数的内部调用超类型构造函数。
那么,如何调用?函数只不过是在特定环境中执行代码的对象,因此通过使用apply()和call()方法也可以在(将来)新创建的对象上执行构造函数。
示例代码
function SuperType() {
this.number = [1, 2, 3];
}
function SubType() {
SuperType.call(this);
}
var instance1 = new SubType();
in ...
什么是“寄生组合式继承”?
通过借用构造函数来继承属性,通过原型链的混成形式来继承方法。构造函数 + 原型链。
寄生组合式继承是引用类型最理想的继承范式。
寄生组合式继承的基本模式
function inheritPrototype(subType, superType) {
//创建对象
var prototype = Object(superType.prototype);
//增强对象
prototype.constr
构造函数、原型和实例之间的关系
关系图:
原型链的基本概念
基于上述关系图的理解,让原型对象等于另一个类型的实例,假如这个类型的
创建单个对象的方法:
直接量
var blog = {
author: "MirrorAvatar",
year: 2015
};
关键字new
var blog = new Object();
blog.author = "MirrorAvatar";
blog.year = 2015;
以上方法的缺点:使用同一个接口创建很多对象,会产生大量的重复代码。为了可复用性,才有了下面七种用于批量创建对象的七种模式。
1.工厂模式(Factory Pattern)
函数的原型基本概念
每个函数都有一个原型(prototype)属性;
原型属性是一个指针,指向一个对象;
对象的用途是包含可以由特定类型的所有实例共享的属性和方法。
理解函数原型对象(prototype)
constructor属性。创建函数后,自动获取到此属性。默认情况下,函数prototype的constructor指向函数本身。
function Foo() {
}
Foo.prototype.constructor === Foo; //true
ECMAScript对象的属性的类型
理解概念:指的是ECMAScript对象的属性的特征,属性有哪些特征,属性有哪些分类。
一共分两类:数据属性和访问器属性。
数据属性
数据属性特征
3月7日增加更新,以下是QQ上简单面试问的问题:
你有github账号或者是个人博客么?面试官对我说,面试的时候,对有博客有github的人印象会比没有的好些。有这些东西,说明平时爱总结、爱学习。知乎上有个答案:为什么 2014 年程序员薪资那么高?
你对我们公司了解么?为什么想来我们公司工作?
你的职业规划是什么?
你做前端遇到过的最难的问题是什么?具体在实现什么功能或者效果上遇到了这个问题。如何解决的?简单得写个demo。
前端工作里你遇到过什么很有挑战性的事情么?
--------------------------分割线------------- ...
基本概念
在HTML5中,任何元素都可以拖放,Drap和Drop。拖放属于HTML事件中的Mouse事件。
实例讲解
代码地址:
JS Bin
...
<body>
<div id="end-area" class="area"></div>
<img id="start-area" draggable="true" src="http://pic1.zhimg.com/d80d9ff11c28c19123bc75a27d3c1df8 ...
三大布尔操作符:
非(NOT)、与(AND)和或(OR)。运算规则和数学中的非与或一样。
1.逻辑非(!)
操作原理:首先会将它的操作数转换为一个布尔值,然后再对其求反。
转换规则参考:Boolean类型
两次逻辑非(!!),相当于一次Boolean()转换函数。
参考:前端开发面试题
前端综合
1. 对Web标准的理解
Web标准是一系列标准的集合:结构标准(XHTML/HTML)、表现标准(CSS)和行为标准(ECMAScript/DOM/BOM)。还有这些代码的书写标准。
要实现的Web标准是:结构化文档;内容、表现和行为三者间的分离。
HTML5的多媒体功能之一:video
1.HTML5页面中如何嵌入视频?
使用<video>标签。
2.如何检测当前浏览器是否支持<video>标签?
function checkVideo() {
if (!!document.createElement('video').canPlayType) { //canPlayType() 方法浏览器是否能播放指定的音频/视频类型。
var vidTest = document.createElement("video");
oggTest ...
1.typeof操作符的基本概念
typeof操作符是干什么用的?用于检测给定变量的数据类型。
为什么要检测?因为ECMASCript是松散类型的,变量可以存放任何数据类型的值。
2.typeof操作符基本用法
返回的字符串值
返回值意义
"undefined
1.Undefined类型的基本概念
Undefined类型的值,只有一个:undefined。
var message1;
alert(message1 === undefined); // true
var message2 = undefined;
alert(message2 === undefined); //true
var声明的变量如果没有初始化,那么该变量的值就是undefined。
2.字面值undefined的来源
ECMA-262第3版之前的版本中并没有规定这个值。第3版引入这个值是为了正式区分空对象指针与未经初始化的变量。