文档章节

Javascript面向对象编程

别寒
 别寒
发布于 2014/06/04 11:50
字数 558
阅读 21
收藏 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不支持函数的重载,在调用一个函数的时候,是根据函数名称来调用,如果有多个函数名相同,则会现在最后一个函数

 

 

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

 

 


© 著作权归作者所有

共有 人打赏支持
别寒
粉丝 30
博文 271
码字总数 137605
作品 0
永州
程序员
js面向对象的一些初级知识总结~~

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

乔康007
2013/02/24
0
0
JavaScript入门(六)

对象 对象是我们使用JavaScript的核心。JavaScript中的对象在许多方面和编程外的现实世界中的对象是相似的(它并不存在,我只是做个设想)。在现实的世界中,一个对象就是一个“事物”(许多...

晨曦之光
2012/03/09
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

面向对象程序设计是软件开发中一个很庞大很复杂的话题,它并不是仅仅学会类、继承、封装、多态这些面向对象编程语法元素就表示掌握的,这些语法元素只是实现面向对象程序的工具, 就像砖块、...

陈宏鸿
05/07
0
0
关于Python的类成员和Javascript的原型

偶然发现两个的设计思路是一致的(个人理解,欢迎指正)。这里简要分析一下: Python的类成员,也就是直接定义在类里的变量(实例成员是用self.x直接声明的),而类方法就是用@classmethod说...

Shawphy
2011/08/30
0
2

没有更多内容

加载失败,请刷新页面

加载更多

20180920 rzsz传输文件、用户和用户组相关配置文件与管理

利用rz、sz实现Linux与Windows互传文件 [root@centos01 ~]# yum install -y lrzsz # 安装工具sz test.txt # 弹出对话框,传递到选择的路径下rz # 回车后,会从对话框中选择对应的文件传递...

野雪球
今天
1
0
OSChina 周四乱弹 —— 毒蛇当辣条

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ 达尔文:分享花澤香菜/前野智昭/小野大輔/井上喜久子的单曲《ミッション! 健?康?第?イチ》 《ミッション! 健?康?第?イチ》- 花澤香菜/前野智...

小小编辑
今天
7
3
java -jar运行内存设置

java -Xms64m #JVM启动时的初始堆大小 -Xmx128m #最大堆大小 -Xmn64m #年轻代的大小,其余的空间是老年代 -XX:MaxMetaspaceSize=128m # -XX:CompressedClassSpaceSize=6...

李玉长
今天
4
0
Spring | 手把手教你SSM最优雅的整合方式

HEY 本节主要内容为:基于Spring从0到1搭建一个web工程,适合初学者,Java初级开发者。欢迎与我交流。 MODULE 新建一个Maven工程。 不论你是什么工具,选这个就可以了,然后next,直至finis...

冯文议
今天
2
0
RxJS的另外四种实现方式(四)——性能最高的库(续)

接上一篇RxJS的另外四种实现方式(三)——性能最高的库 上一篇文章我展示了这个最高性能库的实现方法。下面我介绍一下这个性能提升的秘密。 首先,为了弄清楚Most库究竟为何如此快,我必须借...

一个灰
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部