一、继承 js并没有继承这一个现有的机制,所以我们所说的继承是通过JS本身的机制去实现的。1、类式继承 1// 类式继承 2 3// 父类 4function SuperClass () {5this.superValue = true 6}7 8// 为父类原型添加方法 9 SuperClass.prototype.getSuperValue = function (arguments) {
10returnthis.superValue
11}
1213// 声明子类14function SubClass () {
15this.subValue = false16}
1718// 继承父类19 SubClass.prototype = new S...
遍历“DOM2级遍历和范围” 定义了两个用于辅助完成顺序遍历的DOM结构类型NodeIterator 和 TreeWalk上述两种类型可以基于给定起点的DOM结构执行深度优先的遍历操作对于检测浏览器对于该功能的实现可以使用以下代码var supportTraversals = document.implementation.hasFeature("Traversal","2.0");var supportsNodeIterator = (typeof document.createNodeIterator === "function");var supportsTreeWalker = (typeof document.crea...
事件类型Web浏览器中可能发生的事件有许多种类型不同类型的事件都有着自己独特的信息在“DOM3级事件”规范中,规定了以下几类事件:UI事件 当用户与页面元素交互时触发焦点事件 当元素失去或获得焦点时触发鼠标事件 当用户通过鼠标在页面上执行操作时触发滚轮事件 当使用鼠标滚轮或类似设备时触发文本事件 当在文档中输入文本时触发键盘事件 当用户通过键盘在页面执行操作时触发合成事件 当为IME(输入法编辑...
什么叫非构造函数的继承?比如,现在有一个对象,叫做"中国人"。 var Chinese = { nation:‘中国‘ };还有一个对象,叫做"医生"。 var Doctor ={ career:‘医生‘ }请问怎样才能让"医生"去继承"中国人",也就是说,我怎样才能生成一个"中国医生"的对象?这里要注意,这两个对象都是普通对象,不是构造函数,无法使用构造函数方法实现"继承"。二、object()方法object()函数,可以做到这一点。 functio...
书中第2章,在HTML中使用JavaScript摘要总结2.1 <script>元素<script>中的5个属性:charset:可选。表示通过src属性指定的代码的字符集。多数浏览器会忽略它的值,很少人使用。defer:可选。表示脚本可以延迟到文档完全被解析和显示之后再执行。IE和Firefox3.1是目前唯一支持defer属性的主流浏览器。其他浏览器则会忽略,不延迟脚本的执行。language:已废弃。原来用于表示编写代码使用的脚本语言(如JavaScript、JavaScript1.2或V...
用函数式编程技术编写优美的 JavaScript_ibm作者: 字体:[增加 减小] 类型:转载函数式编程语言在学术领域已经存在相当长一段时间了,但是从历史上看,它们没有丰富的工具和库可供使用。随着 .NET 平台上的 Haskell 的出现,函数式编程变得更加流行。一些传统的编程语言,例如 C++ 和 JavaScript,引入了由函数式编程提供的一些构造和特性。在许多情况下,JavaScript 的重复代码导致了一些拙劣的编码。如果使用函数式编程,就可以...
原文:Callback Hell 什么是 “回调地狱”?在 JavaScript 中,我们经常通过回调来实现异步逻辑,一旦嵌套层级多了,代码结构就容易变得很不直观,最后看起来像这样:fs.readdir(source, function (err, files) {if (err) {console.log(‘Error finding files: ‘ + err)} else {files.forEach(function (filename, fileIndex) {console.log(filename)gm(source + filename).size(function (err, values) {if (err) {console.log(‘...
JavaScript的基础语法 注释 //单行注释 /**多行注释*/ 语句 在JavaScript中,语句一般我们都会采用以分号结尾,每条语句独占一行的形势来书写代码。当然,如果一条语句后面不添加分号也不会报错麻蛋是在进行代码压缩的时候可能会带来一些问题。所以还是建议每条语句加上分号 可以使用c语言的风格用一对大括号将多条语句组合到一个代码块里面 命名的三种方法 匈牙利命名法 匈牙利命名法是微软公司下面以为匈牙利籍的...
简单介绍:说明: window对象既是Js访问浏览器窗口的接口也是Global对象的实现,也就是通过此对象访问网页中定义的任何一个对象,变量和函数,反之在全局作用域中声明的变量,函数都会变成window对象的属性和方法框架相关:1. 页面中每个框架都拥有自己的window对象,保存在frames集合中,所有框架页面定义的变量或函数都会自动作为对应框架window对象的成员2. 可通过特殊全局对象获取指定框架对象,self对象始终指向当前框架对象,top对象始终...
利用节点间的层次关系获取节点:
上一节讲了3中获取的方式: * ※※一、绝对获取,获取元素的3种方式:—Element * 1、getElementById(): 通过标签中的id属性值获来取该标签对象 * 2、getElementsByName(): 通过标签中的name属性值来获取该标签对象集合 * 3、getElementsByTagName(): 通过标签名来获取该标签对象集合现在来看看相对获取的方式:※※二、相对获取(利用节点之间的层次关系),获取节点:—Node 1、父节点:parentNode...
整理JavaScript方面的一些技巧,比较实用的函数,常见功能实现方法,仅作参考
变量转换//edit http://www.lai18.com
var myVar = "3.14159",
str = ""+ myVar,// to string
int = ~~myVar, // to integer
float = 1*myVar, // to float
bool = !!myVar, /* to boolean - any string with length
and any number except 0 are true */
array = [myVar]; // to array
但是转换日期(new Date(myVar))和正则表达式(new RegExp...
对上篇博客的最后那个表格隔行高亮显示加了个功能,鼠标监听和年龄从小到大排序。演示代码:<html><head><title>DHTML技术演示---表格中页面中的显示操纵--行间隔高亮显示</title><metahttp-equiv="content-type"content="text/html; charset=UTF-8"><styletype="text/css">@importurl(table.css);.one{background:#00ff00;}.two{background:rgb(210,0,0);}.over{background-color:#ffff00;}</style><scripttype="text/javascript"...
let add = x=>x+1;
//Map :: (a -> b) -> [a] -> [b]
let Map = (function(result,f,arr){//闭包存储累积对象let result = [];returnfunction map(f,arr){if(!Array.isArray(arr)){return "要处理的对象为数组";}if(arr.length ==0){return [];}else{let [head,...tail] = arr;result.push(f(head));// 通过回调map遍历目标对象arr,f处理过的元素存入result,tail为[]即遍历结束,可以返回resultreturn tail.length == 0 ? result : ...
异步编程:在浏览器端,异步编程非常重要,耗时很长的操作都应该异步执行,避免浏览器失去响应。最常见的例子就是通过AJAX向服务器发送异步请求。异步编程有很多种方法1、回调函数比如有两个函数f1();f2();//f2依赖于f1的执行状态如果f1耗时很长,它会阻塞后面程序的运行我们利用setTimeout来改写f1,因为setTimeout是异步的function f1(callback){setTimeout(function(){//f1的代码,耗时很长,这里是又开启了一个线程,callback(...
目录js面向对象编程js原型链共享方法原型继承 js面向对象编程js面向对象编程不同于 java 的类和对象JavaScript 不区分类和实例的概念,而是通过原型(prototype)来实现面向对象编程。js声明的构造函数,类似于普通函数的声明,但又不同,实例对象时,如果不写new,就是一个普通函数,它返回 undefined。但是,如果写了new,它就变成了一个构造函数,它绑定的 this 指向新创建的对象,并默认返回 this,也就是说,不需要在最后写re...