JavaScript 编程语言作为最流行的客户端脚本语言,早已被众多 Web 开发人员所熟悉。随着 Web2.0 时代的到来和 Ajax 技术的广泛应用,JavaScript 也逐渐吸引着更多的视线。工作中要求越多的是对 JavaScript 语言的深入学习,灵活运用,和对编码质量的保证。 对于熟悉 C/C++ 或 Java 语言的工程师来说,JavaScript 显得灵活,简单易懂,对代码的格式的要求也相对松散。很容易学习,并运用到自己的代码中。也正因为这样,JavaScript 的...
在AJAX兴起以前,很多人写JS可以说都是毫无章法可言的,基本上是想到什么就写什么,就是一个接一个的函数function,遇到重复的还得copy,如果一不小心函数重名了,还真不知道从何开始查找错误,因为大家总是用面向过程的编程思想来写JS代码,而且也由于网络上充斥了太多小“巧”的JS代码段,很多都是随意而为,很不规范,这也就造成了大家对JS的“误解”,一味的认为它就是一个辅助的小东东,而不适合做大的东西开发。但是自从AJAX...
今天要介绍的是,如何生成一个"继承"多个对象的实例。 比如,现在有一个"动物"对象的构造函数, 代码如下: function Animal(){ this.species = "动物"; } 还有一个"猫"对象的构造函数, 代码如下: function Cat(name,color){ this.name = name; this.color = color; } 怎样才能使"猫"继承"动物"呢? 1. 构造函数绑定 最简单的方法,大概就是使用call或apply方法,将父对象的构造函数绑定...
今天是最后一个部分,介绍不使用构造函数实现"继承"。 一、什么是"非构造函数"的继承? 比如,现在有一个对象,叫做"中国人"。 代码如下: var Chinese = { nation:中国 }; 还有一个对象,叫做"医生"。 代码如下: var Doctor ={ career:医生 } 请问怎样才能让"医生"去继承"中国人",也就是说,我怎样才能生成一个"中国医生"的对象? 这里要注意,这两个对象都是普通对象,不是构造函数,无法使用...
学习Javascript,最难的地方是什么?我觉得,Object(对象)最难。因为Javascript的Object模型很独特,和其他语言都不一样,初学者不容易掌握。 下面就是我的学习笔记,希望对大家学习这个部分有所帮助。我主要参考了以下两本书籍:《面向对象的Javascript》(Object-Oriented JavaScript)《Javascript高级程序设计(第二版)》(Professional JavaScript for Web Developers, 2nd Edition) 它们都是非常优秀的Javascript读物,推...
1.浏览器兼容问题: 浏览器兼容性的例子:ie6,ie7对table.appendChild("tr")的支持和IE8不一样,用insertRow、insertCell来代替或者为表格添加tbody,然后向tbody中添加tr。FF(FireFox)不支持InnerText,用textContent代替 2.几乎所有DOM元素都有innerText、innerHTML属性(注意大小写),分别是元素标签内内容的文本表示形式和HTML源代码,这两个属性是可读可写的。 动态创建元素的时候innerHTML可以代替createElement(),属于简单...
1、(function(){alert("hello");})() 2、无名函数 无名函数,其中一个作用可能是生成新的函数对象的引用,主要是用于定义。 另一个用处就是针对js中一些无法含参的回调函数而言的。 明显的例子就是setInterval,我想这是很多人头疼的一个函数,尤其是你想在回调函数中添加参数的时候。 而且最叫人头疼的是,DHTML不是w3c规定的标准,于是不同的浏览器给出的setInterval参数表还不一样。。。 就我测试的两款浏览器来说(IE内核,web...
各位如果有更好的见解可讨论下! 代码如下:/* * Js Class Cookie * Author:Mr Co */ var Cookie = function(/*Cookie名称*/name){ this.$name = name; var allcookies = document.cookie; if(allcookies == ) return; var cookies = allcookies.split(;); var cookie = null; for(var i = 0; i < cookies.length; i++){ if(cookies[i].substring(0,name.length + 1) == (name + =)){ cookie = cookies[i]; break; } } if(cookie =...
但是我后来也跟人说,因为接受的参数太多,所以如果不把智能提示写得很清楚的话,连我自己都常常搞不清楚该怎么用。 不过,接受参数多,除了容易弄错用法以外,还会产生另一个问题,这也是我编写出今天发布的这个东西的原因。 来看一下JS版的页码呈现组件的完全版函数签名: 代码如下:function pnView( currentPage, actionCurrent, beginPage, endPage, actionBegin, actionEnd, currentSiblings, actionCurrentSibling, prevent...
比如在jQuery里可以经常看到下面的代码 代码如下:(function($){ //some code })(jQuery) 这样你就可以使用$来代替jQuery; 在mootools里你可以这样写,因为在mootools里$$代表着一个集合 代码如下:(function($){ //do sth. })(document.id) 在Dojo里你可以这样写 代码如下:(function(d,$){ })(dojo,dojo.query) 这样的话你在dojo里就可以使用$来代替dojo.query;实现从jQuery到dojo的快速转化; 同样模仿mootools的话你可以这样...
在发了博文之后,我又花了一些时间尝试解决这个问题……经过几次尝试之后,我找到了另一种pattern,括号并不再是必要的了: 代码如下:eval(function () { var s = , ww = [v] > (s += v); var ws = [n] > ww( <A href="#">( + n + )</A> ); pnView3(14, [n] > ww( [ + n + ] ), 1, 37, ws, [] > ww( ... ), 2, 1 ); document.write(s); } .lamda0()); 不过,由于运算符优先级的关系,比较、门、赋值等运算符仍然不能直接写在(伪...
因为大家总是用面向过程的编程思想来写JS代码,而且也由于网络上充斥了太多小“巧”的JS代码段,很多都是随意而为,很不规范,这也就造成了大家对JS的“误解”,一味的认为它就是一个辅助的小东东,而不适合做大的东西开发。但是自从AJAX兴起后,大量的JS代码编写要求人们具备像写JAVA类似的代码一样,能够面向对象进行开发。 所以下面就结合我自己的体会和所学习的东东和大家一起来学习在JS中如何使用面向对象的编程。其实使用JS进...
真是五个很quick的小提示: 只在<form>元素上使用submit事件 如果要在form中绑定事件处理程序时,应该只在<form>元素上绑定submit事件,而不是给提交按钮绑定click事件。 March:这个方式固然很好,但是,公司开发时使用了Web Flow,一个页面就一个大form,而里面可能有若干个提交按钮,所以不得不把部分事件处理程序绑定在了提交按钮的click事件上。 可点击的都应该是链接 不要给除锚元素(<a>)以外的元素绑定click事件。这一点对...
函数式编程简介 说到函数式编程,人们的第一印象往往是其学院派,晦涩难懂,大概只有那些蓬头散发,不修边幅,甚至有些神经质的大学教授们才会用的编程方式。这可能在历史上的某个阶段的确如此,但是近来函数式编程已经在实际应用中发挥着巨大作用了,而更有越来越多的语言不断的加入诸如 闭包,匿名函数等的支持,从某种程度上来讲,函数式编程正在逐步“同化”命令式编程。 函数式编程思想的源头可以追溯到 20 世纪 30 年代,数学...
代码如下:<script type="text/javascript"> var test = { numA: 10, objB: {}, arrC: [], init: function(){ alert(this.numA); }, sayHi: function(name){ alert("hello " + name); }, sayHelloWorld: function(){ this.sayHi("world"); }, get: function(){ var self = this; this.objB.alertNumA = function(){ alert(self.numA); } } }; var TestFunc = function(){ alert("im testFunc"); }; TestFunc.prototype = { extFunc:...