面向对象和原型 理解原型 在JavaScript中,可通过原型实现继承.原型的概念很简单.每个对象都含有原型的引用,当查找属性时,若对象本身不具有该属性,则会查找原型上是否有该属性. 每个对象都可以有一个原型,每个对象的原型也可以拥有一个原型,以此类推,形成一个原型链.查找特定属性将会被委托在整个原型链上,只有当没有更多的原型可以进行查找时,才会停止查找. 对象构造器与原型 当用作为函数调用Ninja时,什么都不会做.在用new操作符时返回一个对象,并且设置了它的原型为Ninja,所以ninja…
理解JavaScript为什么应该作为函数式 在JavaScript中,函数是程序执行过程中的主要模块单元 函数是第一类对象 通过字面量创建 function ninjaFunction(){} 赋值给变量,数组项或其它对象的属性 var ninjaFunction = function() {} ninjaFunction.push(function(){}) ninja.data = function(){} 作为函数参数来传递 call(function(){}) 作为函数的返回值 fun…
很棒的一本,可惜没有中文版.…
最近,在阅读 jQuery 之父 John Resig 力作:Secrets of the JavaScript Ninja(JavaScript忍者秘籍).关于第九章提及的 JavaScript 之运行时代码,感觉蛮不错.因此,顺便在博客园记录一下. 有关运行时.编译时就不再做过多介绍,相信,大部分同学或多或少熟悉一门强类型语言,比如:C#.Java 之类.就以 C# 为例,程序员编写的 .cs 文件最终将编译成 .dll 程序集中,如果 .cs 中有语法错误,将无法编译通过.而像 JavaS…
一.JavaScript的概述###<1>JavaScript的概念 又称ECMAScript,和java没有任何关系 嵌入在HTML元素中的 被浏览器解释运行的 一种脚本语言. ###<2>特点 操作方便:任何文本编辑器都可以编写,有浏览器就可以执行 面向对象:内置了大量的对象 脚本语言:解释执行,事先不编译,逐行执行 ###<3>作用(使用HTML动态效果) 实现客户端数据格式的验证 处理浏览器的事件 制作特殊动态效果(轮播图,广告设计,特效等等) ###<4…
1.什么事对象 JavaScript 中的所有事物都是对象,如:字符串.数值.数组.函数等,每个对象带有属性和方法. 对象的属性:反映该对象某些特定的性质的,如:字符串的长度.图像的长宽等: 对象的方法:能够在对象上执行的动作.例如,表单的“提交”(Submit),时间的“获取”(getYear)等: JavaScript 提供多个内建对象,比如 String.Date.Array 等等,使用对象前先定义,如下使用数组对象: var objectName =new Array();//使用new…
 11.强制转换 强制转换主要指使用Number.String和Boolean三个构造函数,手动将各种类型的值,转换成数字.字符串或者布尔值. 1>Number强制转换 参数为原始类型值的转换规则: 原始类型的值主要是字符串.布尔值.undefined和null,它们都能被Number转成数值或NaN. NaN:not a number,当数学计算得不到数字结果时,该值就是NaN(Number类型). isNaN:判断变量是否为NaN. Number(324) 值:324 字符串如果可以被解析为…
JavaScript并不是面向对象的程序设计语言,但它是基于对象的.JavaScript中的每个函数都可用于创建对象,返回的对象既是该对象的实例,也是object的实例 . 一.对象与关联数组 JavaScript中的对象本质上是一个关联数组,就像Java里的Map数据结构,有一组key-value对组成,不同的是JavaScript对象的value不仅可以是值,也可以是函数,该函数就是该对象的方法. 当value是基本类型的值或者复合类型的值的时候,此时value就是该对象的属性值. 因此访问…
前言 人生总是直向前行走,从不留下什么. 原文地址:学习javascript数据结构(二)--链表 博主博客地址:Damonare的个人博客 正文 链表简介 上一篇博客-学习javascript数据结构(一)--栈和队列说了栈和队列在javascript中的实现,我们运用javascript提供的API很容易的实现了栈和队列,但这种数据结构有一个很明显的缺点,因为数组大小是固定的所以我们在移除或是添加一项数据的时候成本很高,基本都需要吧数据重排一次.(javascript的Array类方法虽然很…
一.javascript中的属性.方法 1.首先,关于javascript中的函数/“方法”,说明两点: 1)如果访问的对象属性是一个函数,有些开发者容易认为该函数属于这个对象,因此把“属性访问”叫做“方法访问”,而实际上,函数永远不会属于一个对象,对象拥有的,只是函数的引用.确实,有些函数体内部使用到了this引用,有时候这些this确实会指向调用位置的对象引用,但是这种用法从本质上并没有把一个函数变成一个方法,只是发生了this绑定罢了.因此,如果属性访问返回的是一个函数,那它也并不是一个方…