几种常用的JS类定义方法(转)

 1 // 方法1 对象直接量
 2 var obj1 = {
 3     v1 : "",
 4     get_v1 : function() {
 5         return this.v1;
 6     },
 7     set_v1 : function(v) {
 8         this.v1 = v;
 9     }
10 };
11
12 // 方法2 定义函数对象
13 var Obj = function() {
14     var v1 = "";
15     this.get_v1 = function() {
16         return this.v1;
17     };
18     this.set_v1 = function(v) {
19         this.v1 = v;
20     }
21 };
22
23 // 方法3 原型继承
24 var Obj3 = new Function();
25 Obj3.prototype = {
26     v1 : "",
27     get_v1 : function() {
28         return this.v1;
29     },
30     set_v1 : function(v) {
31         this.v1 = v;
32     }
33 };
34
35 // 方法4 工厂模式
36 function loadObj() {
37     var tmp = new Object();
38     tmp.v1 = "";
39     tmp.get_v1 = function() {
40         return tmp.v1;
41     };
42     tmp.set_v1 = function(v) {
43         tmp.v1 = v;
44     };
45     return tmp;
46 }
47
48 obj1.set_v1(‘hello1‘);
49 alert(obj1.get_v1());
50
51 var obj2 = new Obj();
52 obj2.set_v1(‘hello2‘);
53 alert(obj2.get_v1());
54
55 var obj3 = new Obj3();
56 obj3.set_v1(‘hello3‘);
57 alert(obj3.get_v1());
58
59 var obj4 = loadObj();
60 obj4.set_v1(‘hello4‘);
61 alert(obj4.get_v1());
62
63 alert(obj1);
64 alert(obj2);
65 alert(obj3);
66 alert(obj4);
67
68 类的基本使用
69
70 /**
71 * 定义一个类User,js中使用构造函数实现
72 */
73 User = function(sname,spass){
74 //定义属性
75 this.name = sname;
76 this.pass = spass;
77 }
78
79 // js通过prototype动态为类添加方法
80 User.prototype.sayHello = function(){
81 alert("sayHello():Hello everyone!");
82 };
83
84 // js通过prototype动态为类添加属性
85 User.prototype.sex = "男";
86
87 // 测试函数
88 function testUser(){
89 var user = new User(‘Dream‘,‘123‘);
90 alert("姓名:"+user.name+"\n"+"密码:"+user.pass+"\n"+"性别:"+user.sex);
91 user.sayHello();
92 }
时间: 2024-12-11 22:24:51

几种常用的JS类定义方法(转)的相关文章

js类定义函数时用不用prototype的区别?

一直在使用js编写自以为是面向对象的方法,遇到一个问题,就是定义一个方法,如下:      function ListCommon2(first,second,third) {   this.First=function () {  alert("first do"+first); } }  ListCommon2.do1=function(first) {    //   this.First();  alert("first do"+first); } List

js面向对象编程: js类定义函数时prototype和this区别?

在面向对象编写js脚本时,定义实例方法主要有两种 如下: function ListCommon2(afirst) { var first=afirst; this.do1=function () { alert("first do"+first); } } ListCommon2.prototype.do2=function() { // alert("first do"+first);//会出错,不能访问first this.do1(); } this.do1=

JS类定义方式

// 方法1 对象直接量 var obj1 = { v1 : "", get_v1 : function() { return this.v1; }, set_v1 : function(v) { this.v1 = v; } }; obj1.set_v1('hello1'); alert(obj1.get_v1()); // 方法2 定义函数对象 var Obj = function() { var v1 = ""; this.get_v1 = function(

Js 类定义的几种方式

提起面向对象我们就能想到类,对象,封装,继承,多态.在<javaScript高级程序设计>(人民邮电出版社,曹力.张欣译.英文名字是:Professional JavaScript for Web Developers)这本书中描述的还算比较详细.我们看看JavaScript中定义类的各种方法. 1.工厂方式 javaScript中创建自己的类和对象,我们应该是必须掌握的,我们都知道javaScript中对象的属性可以在对象创建后动态定义,比如下面的代码: <script type=&q

JS如何定义方法及调用 精选

简单搜索了下,遇到点问题1,经常在JS中看到如var foo = function(){}的形式foo是方法名还是对象名,如果想调用此方法,是用foo(),foo.function(),还是该如何正确调用.除此之外,希望高手帮忙总结下,JS自定义方法和调用的一个大全,这个可以没有,先谢了 方法(method)是通过对象调用的javascript函数.也就是说,方法也是函数,只是比较特殊的函数. 函数(function)是一段代码,需要通过名字来进行调用.它能将一些数据(函数的参数)传递进去进行处

QF——UI之几种常用的隐藏键盘的方法

怎么在填写完UITextField之后,点击空白处,隐藏软键盘. 下面两个方法都可以隐藏键盘 [tf resignFirstResponder]; 停止textfield的第一响应者 [self.view endEditing:YES]; 结束view的编辑,它便会隐藏键盘,使其不能编辑视图. 有了隐藏键盘的方法后,那怎么实现触发调用这两个方法呢? 第一种常用的方法就是给整个view添加点击手势,并设置处理方法,在处理方法里实现隐藏键盘 第二种就是重写触摸方法[tf touchesBegan:(

js面向对象编程: js类定义函数时prototype和this差别?

在面向对象编写js脚本时,定义实例方法主要有两种 例如以下: function ListCommon2(afirst) { var first=afirst; this.do1=function () { alert("first do"+first); } } ListCommon2.prototype.do2=function() { // alert("first do"+first);//会出错.不能訪问first this.do1(); } this.do

【转】17种常用的JS正则表达式 非负浮点数 非负正数.

<input type='text' id='SYS_PAGE_JumpPage' name='SYS_PAGE_JumpPage' size='3' maxlength='5' onkeyup='this.value=this.value.replace(/[^1-9]\D*$/,"")' ondragenter="return false" onpaste="return !clipboardData.getData('text').match(

四种常用的标准自定义View方法(上)

感谢巨人的肩膀-------coder任玉刚+Tomcat的猫 (一)继承View重写onDraw方法 这种方法主要用于实现一些不规则的效果,一般需要重写onDraw方法,采用这种方式需要自己支持wrap_content,并且padding也需要自己处理. 先写一个标准的菜鸟级别的自定义View: CircleView.java public class CircleView extends View { private int mColor = Color.GREEN; private Pai