文档章节

Javascript面向对象编程

别寒
 别寒
发布于 2014/06/04 11:50
字数 558
阅读 22
收藏 0

 

呃,这一节和之后的知识会比较麻烦和繁琐,但是呢,没关系啦。方法有很多,我们只要会一种就可以了。嘿嘿@__@

 

对象函数(方法)

 

给对象添加(指定)函数的方法:

1.

function User(name){

this.name=name;

// 打印名称

this.printfName=function(){

documnet.write(this.name);

}

// 计算

this.sum=function(){

var number=0;

for(var i=1;i<100;i++){

number+=i;

}

return number;

}

}

 

var user = new User(何洪波);

user.printfName();// 打印名称

documen.write(user.sum());// 计算

 

2. 原型法:可以共享函数代码

function User(){}

User.prototype.printf=function(){

alert(何洪波);

}

var user1 = new User();

User2.printf();

var user2 = new User();

user2.printf();

 

 

3.

function User(){

this.name=hehongbo;

this.age=21;

}

function show1(){

alert(this.name);

}

var u=new User();

u.printf=show1;

u.printf();

 

4.

function User(){

this.name=hehongbo;

this.age=21;

}

var u=new User();

v.printf = function show1(){

alert(this.name);

};

u.printf();

 

第一种、第三种、第四种有个问题:每个对象独占函数代码,这样如果对象很多,则会影响效率。所以推荐使用第一种方法和第二种方法

 

判断两个对象是否为同一个对象:

alert(user1.printf == user2.printf);

 

 

如何给类添加方法(如何给某类型的所有对象添加方法)

jsarray对象扩展一个findval)方法,当一个array对象调用该方法时,如果能找到val则返回其下标,否则返回-1.

 

代码:

var arr1 = new Array(3);

arr1[0] = geor;

arr1[1]= john;

arr1[2] = tho;

 

// 遍历数组

for(var i=0;i<arr1.length;i++){

document.write(arr1[i]);

}

// 使用array提供的方法,颠倒数据

arr1.reverse();

 

给所有array对象添加一个方法 find();

Array.prototype.find = function(var){

// 遍历数组 

for(var i=0;i<this.length;i++){

if(val == this[i]){

return i;

}

}

return -1;

}

 

document.writeln(arr1.find(john));// 调用find方法

 

 

成员函数的参数可以是多个

function 函数名(参数1...){

}

 

成员函数可以返回值,也可以没用,但是有的话,最多只能有一个

 

Js不支持函数的重载,在调用一个函数的时候,是根据函数名称来调用,如果有多个函数名相同,则会现在最后一个函数

 

 

是不是头都晕了?楼主也是啊.....  给对象添加函数的方式有很多种,但是我们不要管,只要一种就好了,强烈建议使用第一种啊第一种!!!

 

 


© 著作权归作者所有

共有 人打赏支持
别寒
粉丝 29
博文 271
码字总数 137605
作品 0
永州
程序员
私信 提问
分享51本关于JavaScript方面的学习书籍(免费下载)

分享51本关于JavaScript方面的学习书籍(免费下载) 1、JavaScript面向对象15分钟教程 2、原型、作用域、闭包的完整解释 3、Javascript面向对象特性实现(封装、继承、接口) 4、JavaScript面向...

邓剑彬
2012/12/02
1K
12
js面向对象的一些初级知识总结~~

javascript作为一门解释性脚本语言,有着其独特的魅力.既具有函数编程的特性,又具有面向对象的特征.以前的开发中,大多是使用了javascript的函数式编程,最近,发现其的面向对象也有一定的优势,...

乔康007
2013/02/24
0
0
细说JavaScript数据类型及转换

细说JavaScript数据类型及转换 JavaScript数据类型 1.Boolean(布尔) 布尔:(值类型)var b1=true;//布尔类型 2.Number(数字) 数值:(值类型)var n1=3.1415926;//数值类型 n1.toFixed...

开元中国2015
2015/07/13
0
0
再谈 javascript 面向对象编程

前言:虽有陈皓《Javascript 面向对象编程》珠玉在前,但是我还是忍不住再画蛇添足的补上一篇文章,主要是因为javascript这门语言魅力。另外这篇文章是一篇入门文章,我也是才开始学习Javascr...

aoniao
2012/02/28
4.4K
22
为什么我不推荐 JavsScript 为首选编程语言

对于软件职业生涯,JavsScript不应该是首选 几天前,我写了一篇《what programming language you should learn first for a career in programming》的文章,引来了很多的争论(Google+ 上有...

腊八粥
2014/01/11
4.9K
25

没有更多内容

加载失败,请刷新页面

加载更多

集群介绍 ..

12月19日任务 18.1 集群介绍 18.2 keepalived介绍 18.3/18.4/18.5 用keepalived配置高可用集群 一.集群介绍 根据功能划分为两大类:高可用和负载均衡 高可用集群通常为两台服务器,一台工作,...

hhpuppy
16分钟前
0
0
TensorFlow的基础概念02

TensorFlow的计算流图 import osos.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'#TensorFlow的计算模型,数据流图'''TensorFlow = Tensor + FlowTensor 张量 数据结构:多维数组Flo...

怪咖先生forever
22分钟前
1
0
大数据技术的发展趋势

大数据领域已经涌现出了大量新的技术,它们成为大数据采集、存储、处理和呈现的有力武器。这些技术下一步将如何发展?它们之中哪些技术将广为流行?又会诞生哪些新的技术? 技术趋向多样化,...

董黎明
37分钟前
8
0
藏在正则表达式里的陷阱

前几天线上一个项目监控信息突然报告异常,上到机器上后查看相关资源的使用情况,发现 CPU 利用率将近 100%。通过 Java 自带的线程 Dump 工具,我们导出了出问题的堆栈信息。 我们可以看到所...

前端小攻略
40分钟前
3
0
关联更新,关联查询

关联更新 update A,B SET A.c1=B.c1,A.c2=B.c2 where A.id=B.id and ... update A inner join on A.id=B.id set A.c1=B.c1,A.c2=B.c2 where... 关联查询 交叉连接(cross join),内连接(inner ......

关元
43分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部