javascript中的对象创建声明: var obj = {}; 或者 var obj = new Object(); 为对象加入属性,方法: //=====第一种写法==================================== obj.name = '小明'; //为对象加属性 obj.updateName = function(name){//为对象定义updateName方法 this.name = name; } alert(obj.name); obj.updateName("小强"); //调用updateName修改obj对象的name属性值 alert(obj['name']); 第一次显示结果为:小明 第二次显示结...
在小项目中对于JavaScript使用,只要写几个function就行了。但在大型项目中,尤其是在开发追求良好的用户体验的网站中,如SNS,就会用到大量的JavaScrpt,有时JavaScript的工作量胜过了C#,这时写一堆function,就会显得很乱,杂乱无章,甚至会出现命名冲突,管理和维护起来都很麻烦。对于这种情况我们就需要使用面向对象的思想来开发JavaScript。那我们就这样作罢: 对于一个项目,首先要有个命名空间。所以我们首先要做的是定义一...
在上一节面 JavaScript 面向对象之命名空间 中说了怎么定义JavaScript命名空间,这一节来说下紧接着的一个概念——类。虽然JavaScript中没有class关键字,但作为开发人员我们一定要有这个思想。在C#中类可以分为实例类和静态类,JavaScript亦然。 一,定义实例类: 在上节中我定义了一个cnblogs.news的命名空间,现在就在此命名空间下定义一个名为Article类: 代码如下:cnblogs.news.Article=function(){ var _this=this; this.tit...
上两节讲了 JavaScript 面向对象之命名空间 与 javascript 面向对象的JavaScript类,大家可以先看上面的再继续往下看。其实很简单,废话少说,看了下面的代码及注释相信你就会一目了然! 代码如下://声明类,就是一个方法,其实在JavaScript中,命名空间、类、成员.... 一切皆对象 MyClass =function(){ var _this=this; //私有变量 var aa="11"; //公开变量 this.bb="22"; //私有方法 function fun1(){ alert(aa); alert(_this.b...
上几节讲了 JavaScript 面向对象之命名空间 、 javascript 面向对象的JavaScript类 与 JavaScript 面向对象的之私有成员和公开成员 ,大家可以先看上面的再继续往下看。假如 我这样定义: 代码如下:function getDate(){.....} function getDate(date){.....} 那么后一个方法将覆盖前一个,虽然不报错。 但是我们确实是可以实现重载的,如果你用过jQuery,你就会深有体会,比如$("#btn").val() 是获取id为"btn"的按钮的value值,而...
由于才疏学浅,我不得不将《Javascript 高级程序设计》中的部分内容摘抄过来,这些同时也算是我的读书笔记吧。由于 Javascript 面向对象机制及其的重要,而且内容非常的繁多,在这里就分篇章逐个介绍。 使用对象首先就是声明它(内置的对象当然就不需要了)。该死的 Javascript 总是会让我们死去很多的脑细胞,这篇文章主要说明下声明 Javascript 类的几种方法。 工厂模式 工厂模式可能是很多开发人员使用的一种模式,简单的说这种...
js的单例写法JS单例模式 div{height:100px; width:100px; background:#CCC; border:#000 1px solid;} my = new function yangbin() { this.name = "我是单例funnyzak!"; }; function yangbin1(){ this.name = "我是funnyzak!"; } function myname(){ var u = new yangbin1(); alert(u.name); } 你是?(单例) 你是?(普通) [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] loop.js是一个单例模式的js类://一开始就用new 无名...
感叹是为了缓解严肃的气氛并引出今天要讲的话题,”javascript面向对象编程”,接下来,我们围绕面向对象的几大关键字:封装,继承,多态,展开。 封装:javascript中创建对象的模式中,个人认为通过闭包才算的上是真正意义上的封装,所以首先我们先来简单介绍一下闭包,看下面这个例子: 代码如下:<script type="text/javascript">// <![CDATA[ function myInfo(){ var name ="老鱼",age =27; var myInfo = "my name is" + name ...
学过java,c#,vb的都知道类的概念,而类具有继承、封装、多态等功能。而javascript它不是面向对象语言,它是解释性语言。 但我们同样可以使用javascript来实现继承、多态。 javascript实现类,有多种方法。 方法一:构造方法。 代码 代码如下:function coder(){ this.name = 小王; this.job = 程序员; this.coding = function () { alert(我正在写代码); } } var coder=new coder(); alert(coder.name); coder.coding(); 方法二:...
因此很有必要在这里为同学们举一个例子: JavaScript面向对象代码示例 //创建一个站点的构造函数,name与url是其参数 function Site(name, url) { this.url = url; this.name = name; } //为Site增加一个方法,用于显示网址 Site.prototype.show = function() { return this.name+"的网址为:"+this.url; }; //创建一个站点集合构造函数,sites是其参数 function Sites(sites) { this.sites = sites; } //为Sites增加...
JavaScript 对象是词典 在 C++ 或 C# 中,在谈论对象时,是指类或结构的实例。对象有不同的属性和方法,具体取决于将它们实例化的模板(即类)。而 JavaScript 对象却不是这样。在 JavaScript 中,对象只是一组名称/值对,就是说,将 JavaScript 对象视为包含字符串关键字的词典。我们可以使用熟悉的“.”(点)运算符或“[]”运算符,来获得和设置对象的属性,这是在处理词典时通常采用的方法。以 下代码段 代码如下:var userObj...
直到有那么一天,我开始在js中拼凑DOM标签,而且需要不停的拼凑,我发现我的代码变得愈发的丑陋,不仅上是代码简洁的问题,甚至有时候还引发了性能问题。长此以往,不出三个月,上帝都将会不知道我写过些什么,本篇的目的完全出于记录使用心得。 首先,还是来看一下促使我改变书写JavaScript习惯的垃圾代码,在练习、测试、调试、甚至正式项目中,大量的充斥着下面的代码。 代码如下:Function finduser(userId) { } Function show...
说到js的面向对象,就不得不提到prototype这个js内置属性了(注意:这里的prototype可不是prototype.js),它的作用就是可以动态的向一个对象(object)添加某种属性。我现在要做的就是尽可能的让代码达到公用,像继承啦之类的。好了,这些就不多说了,对prototype不了解的可以搜索下相关内容。 今天要做的是点击一个html元素让其弹出一个友好的对话框来,首先要明确两点,一点是我可能会大量的用到这种方式,甚至不希望出现系统的alert...
javascript中的对象还没解释清楚怎么回事,一上来就直奔主题,类/继承/原型/私有变量.... 结果呢,看了大半天,有了一个大概的了解,细细一回味,好像什么都没懂... 这篇文章是参考<<javascript-the definitive guide,5th edition>>第7,8,9章而写成的,我也 会尽量按照原书的结构来说明javascript的面向对象技术(对象/数组->函数-->类/构造函数/原型).对一些我自己也拿捏不准的地方,我会附上原文的英文语句,供大家参考. 如果不做说明,则文...
1. JavaScript中的类型 -------- 虽然JavaScript是一个基于对象的语言,但对象(Object)在JavaScript中不是第一型的。JS 是以函数(Function)为第一型的语言。这样说,不但是因为JS中的函数具有高级语言中的函 数的各种特性,而且也因为在JS中,Object也是由函数来实现的。——关于这一点,可以在 后文中“构造与析构”部分看到更进一步的说明。 JS中是弱类型的,他的内置类型简单而且清晰: --------------------------------------...