在JavaScript中,没有继承关键字: extends。那么,它是通过哪些方法,在用构造函数生成对象时,把对象基于另外一个构造函数,进行属性的生成(继承/拷贝)的呢? 即:对一个函数使用 new 关键字生成对象时,其对象的属性,可以来自于其它函数。 本文提供两种写法: 第一种(非正式): 但需要理解这种用法。 Javascript代码 function Animal (name, age){ this.name = name; this.age = age; } function Dog (name, ...
Duck punch 我们先不谈AOP编程,先从duck punch编程谈起。 如果你去wikipedia中查找duck punch,你查阅到的应该是monkey patch这个词条。根据解释,Monkey patch这个词来源于 guerrilla patch,意为在运行中悄悄的改变代码,而 guerrilla 这个词与 gorilla 同音,而后者意又与monkey相近(前者为“猩猩”的意思),最后就演变为了monkey patch。 如果你没有听说过duck punch,但你或许听说过duck typing。举一个通俗的例子...
1. 前言最近在看司徒正美的《JavaScript框架设计》,看到异步编程的那一章介绍了jsdeferred这个库,觉得很有意思,花了几天的时间研究了一下代码,在此做一下分享。异步编程是编写js的一个很重要的理念,特别是在处理复杂应用的时候,异步编程的技巧就至关重要。那么下面就来看看这个被称为里程碑式的异步编程库吧。2. API源码解析2.1 构造函数这里使用了安全的构造函数,避免了在没有使用new调用构造函数时出错的问题,提供了两个...
Javascript是一种基于对象(object-based)的语言,你遇到的所有东西几乎都是对象。但是,它又不是一种真正的面向对象编程(OOP)语言,因为它的语法中没有class(类)。那么,如果我们要把"属性"(property)和"方法"(method),封装成一个对象,甚至要从原型对象生成一个实例对象,我们应该怎么做呢?一、 生成实例对象的原始模式假定我们把猫看成一个对象,它有"名字"和"颜色"两个属性。var Cat = { name : ,color : }现...
有一天,你在浏览自己的代码,发现有两大段代码几乎一样。实际上,它们确实是一样的——除了一个关于意大利面(Spaghetti)而另一个关于巧克力慕思(Chocolate Moose)。 // 一个小例子: alert("偶要吃意大利面!"); alert("偶要吃巧克力慕思!"); 嗯,这个例子碰巧是用javascript写的,不过你就算不懂JavaScript,应该也能明白它在干什么。 拷贝代码不好。于是,你创建了个函数 function SwedishChef( food ){ ale...
级别: 初级Shantanu Bhattacharya (shantanu@justawordaway.com), 首席顾问, Siemens Information Systems Limited2006 年 7 月 20 日函数式或声明性编程是非常强大的编程方法,正逐渐在软件行业流行起来。这篇文章将介绍一些相关的函数式编程概念,并提供有效使用这些概念的示例。作者将解释如何使用 JavaScript(TM)(JavaScript 能导入函数式编程的构造和特性)编写优美的代码。简介函数式编程语言在学术领域已经存在相当长一段时...
以前没有注意到这个滚轮,看到这里有一篇说这个的:http://www.javascriptsearch.com/guides/Advanced/articles/JSMouseScrolling.html我把它转过来了。如果是在实际应用中,有的时候还是蛮有用的。主要是得到滚轮是向上滚还是向下滚。注释的代码 function handle(delta) { if (delta < 0) …; else …;}/** 事件句柄 */function wheel(event){ var delta = 0; if (!event) /* For IE. */ event = window.event; if (event.wheelDe...
第三课终于和大家见面了, 大家要感谢 Actions 的辛勤劳动啊, 好好利用论坛给大家提供的资源和教程, 希望大家一起学习提高 :D 大家有什么意见, 建议或者想法, 可以到本版的教程问答区 或 站务管理版的 建议或意见 去发表, 我们会及时给您反馈 :) 下面是今天的学习重点: A.补充上课的变量内容 B.if语句的基本语法 C.window.com()基本用法 A.变量 1.变量的类型规则 java script是无类型的,他的变量可以放任何数据类型的值。 2.变量的...
前一段有人给我说,第二课就看不明白了,我不知道是不是写的太笼统了,不够细致,还是其他的,有什么问题,大家给提出来,当然我也不 是什么js高手,只不过想把爱好者领进门而已。希望大家多多参与。 今天的主要任务就是for循环。另外就是数据类型。既for in(现在还没有讲数组和对象,先了解一下)。 数据类型的转换: 如果运算的数据类型不是一样的话,js脚本会尽力执行内部转换来解决,但js不了解你的心思。所以得到的结果可能和...
今天我们主要学习的内容有以下几块: 1、java script变量 2、java script表达式和运算符 可以用var加上为变量指定的名称来声明变量,变量类型可以通过给变量赋值来确定。由于java script采用的是弱类型的样式,对数据类型要求不太严格,在程序执行的过程中,会根据需要自动转换。 对于字符串变量,可以通过“变量名.length”来获得该变量中字符串的长度,如 var name; name="java script"; 那么name.length的值就是10。 若在一...
不管你以前学没有学过java script,本教程都能带您进入java script的殿堂,领悟java script的魅力。 大家来到这里,都是java script的爱好者,对java script都多多少少有一定的理解。关于java script的历史等就不做介绍了,我们直接来学习它,用它。 也许大部分人都认为java script是在客户端运行的,其实不然。java script有两种不同的运行环境,一个是在服务器端的javascript,另一个就是客户端的javascript了。还有就是java...
用 new Object() 来创建对象在javascript里有几种创建对象的方法,在不同的场合可用不同的方法.最简单的就是用 new 操作符,例如: 代码如下:How do I loop through properties in an object? You need to use a for/in loop. 我们可以通过for in循环来遍历对象的属性。 The important thing to notice is that in the object syntax the property is an identifier, whereas in the array syntax, its a string. The obvious benef...
mouseDown事件和mouseUp事件 大家知道,mouseDown事件和mouseUp事件的组合就是click事件,但是如果在链接上按下鼠标,并移到链接之外在放开鼠标,那么就只有mouseD own事件了。这两个事件可以增加图标按钮的图像效果, 至于mouseDown和mouseUp的属性,它们是伴随着Click事件发生的,这和keyPress事件是keyDown事件和keyUp事件组合而成的机制是一样的 ,这3个鼠标事件也有modifier属性。 (注意:如果在onClick事件处理中使用re...
鼠标事件(上) 随着课程的进行,能跟着下来的人是越来越少了,不知道是不是因为没有太多的表现,只是死记的东西,大家都没有兴趣啊。其实网页上 的很多特效,动作大都是用javascript来实现的,没有javascript的网页,就象一个人没有了肌肉一样。但是所有的动作都是有函数来控制的 ,而控制语句是基础中的基础。希望大家能耐心的学下去。今天的课程就轻松一下,学习点能见到效果的。 主要内容就是基于鼠标的事件,有如下几种: 1....
世间万物,千变万化,面向对象的编程亦是对现实社会的模拟,而JavaScript是一种基于对象并且很接近面向对象编程的编程语言,而我们web设计师/程序员跟JavaScript打交道亦要直面JavaScript才能够把网页写得更加丰富多彩.在此先搞清楚一点就是:JavaScript并不仅仅用在Web上,它可以用在许多领域,当然我这里讨论的更多的是JavaScript在Web上的应用,并且主要是事件方面的应用. JavaScript并不能直接对Web对象进行操作,而是要通过浏览器提供的...