OOP 语言使我们有能力自定义对象和变量类型。 面向对象编程 JavaScript 是面向对象的编程语言 (OOP)。OOP 语言使我们有能力定义自己的对象和变量类型。对象拥有属性和方法。 属性 属性指与对象有关的值。 举例: 代码如下:<script type="text/javascript"> var txt="Hello World!" document.write(txt.length) //使用字符串对象的长度属性来计算字符串中的字符数目,输出为:12 </script> 方法 方法指对象可以执行的行为(或者可以...
什么是对象对象是一件事,一个实体,一个名词,概括来说:万物皆是对象一个对象保存了某些信息,并知道如何执行某些操作 对象的状态和行为对象具有状态,状态是对对象的一个或多个属性的描述(如:一个灯 "灯是亮的 这是它的状态")对象具有行为,行为是对象为为改变自身的状态而发生的作用和反作用(如:一个灯 "把灯关了" 这是它的行为) 面像对象中最原始的单元就是对象 封装把数据和影响这个数据的操作聚合成一个对象的行为称为...
面向对象的术语类 类作为设计蓝图来创建对象的代码段,它描述了对象的特征;该对象具有什么样的属性,怎样使用对象完成一些任务,他对事件进行怎样的响应等! 对象 对象是类的一个实例,通常通过调用类的一个构造函数来创建它! 方法 方法是在类中定义的函数,一般而言,一个方法描述了对象可以执行的一个操作! 属性 属性是类中定义的变量,类的属性突出刻画了对象的性质或状态。某些情况下,对象的使用者可能不允许改变对象的...
各位如果有更好的见解可讨论下! 代码如下:/* * 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代码,而且也由于网络上充斥了太多小“巧”的JS代码段,很多都是随意而为,很不规范,这也就造成了大家对JS的“误解”,一味的认为它就是一个辅助的小东东,而不适合做大的东西开发。但是自从AJAX兴起后,大量的JS代码编写要求人们具备像写JAVA类似的代码一样,能够面向对象进行开发。 所以下面就结合我自己的体会和所学习的东东和大家一起来学习在JS中如何使用面向对象的编程。其实使用JS进...
代码如下:<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:...
本文承接上一篇JavaScript面向对象编程(1) 基础。 上篇说过,JavaScript没有类的概念,需要通过函数来实现类的定义。先通过一个例子说明: 代码如下:function myClass() { var id = 1; var name = "johnson"; //properties this.ID = id; this.Name = name; //method this.showMessage = function() { alert("ID: " + this.ID + ", Name: " + this.Name); } } var obj1 = new myClass(); var obj2 = new myClass(); function的...
1. 用JavaScript实现类 JavaScritpt没有专门的机制实现类,这里是借助它的函数允许嵌套的机制来实现类的。一个函数可以包含变量,又可以包含其它函数,这样,变量可以作为属性,内部的函数就可以作为成员方法了。因此外层函数本身就可以作为一个类了。如下: 代码如下:function myClass() { //此处相当于构造函数 } 这里 myClass就是一个类。其实可以把它看成类的构造函数。至于非构造函数的部分,以后会详细描述。 2. 如何获得一...
代码如下:var JsObject = {} || new Object(); JsObject.extend = function(subClass, superClass){ //先判断子类subClass是否已经定义,如果未定义,则重新定义类。 if(typeof subClass == "undefined")subClass = function(){}; //如果父类superClass是类,则转化成对象 if(typeof superClass == "function")superClass = new superClass(); //遍历父类superClass对象中的属性和方法 for(var p in sup...
其实很简单,废话少说,看了下面的代码及注释相信你就会一目了然! 代码如下://声明类,就是一个方法,其实在JavaScript中,命名空间、类、成员.... 一切皆对象 MyClass =function(){ var _this=this; //私有变量 var aa="11"; //公开变量 this.bb="22"; //私有方法 function fun1(){ alert(aa); alert(_this.bb); } //私有方法 var fun2=function(){ alert(aa); alert(_this.bb); } //公开方法 this.fun3=function(){ alert(aa);...
假如 我这样定义: 代码如下:function getDate(){.....} function getDate(date){.....} 那么后一个方法将覆盖前一个,虽然不报错。 但是我们确实是可以实现重载的,如果你用过jQuery,你就会深有体会,比如$("#btn").val() 是获取id为"btn"的按钮的value值,而$("#btn").val("点我")则是给id为"btn"的按钮赋值。 那么JavaScript是怎么实现(准确地讲应该叫“模拟”)的呢?。 答案很简单:arguments arguments是JavaScript里的一个...
javascript中本没有命名空间的概念,但是要体现面向对象的思想, 应当有命名空间,就像java中的package,.net中的namespace一样, 作用主要为了防止类名冲突,相同的类名只要属于不同的命名空间,便不会冲突。 最简单创建命名空间的方法: 代码如下:var java = {}; java.util = {}; //这样就创建成功了命名空间:java.util //我们可以在java.util下面加类(函数),属性,或对象 java.util.HashMap = function() { this.Show...
如下: 代码如下:function Student() { //定义类Student中的字段,并赋予初值,但此字段的访问权限是public this.studentNo = s001; this.studentName = 小明; this.sex = 男; //定义类Student中的方法updateStudentName ,用于修改studentName 值 this.updateStudentName = function(studentName) { this.studentName = studentName; } } 如上代码便已定义了一个Student类,并包含studentNo ,studentName , sex 3个字段,方法...
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。那我们就这样作罢: 对于一个项目,首先要有个命名空间。所以我们首先要做的是定义一...