文档章节

Javascript面向对象编程

别寒
 别寒
发布于 2014/06/04 11:50
字数 558
阅读 21
收藏 0
点赞 1
评论 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
博文 269
码字总数 136219
作品 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
关于Python的类成员和Javascript的原型

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

Shawphy
2011/08/30
0
2
面向对象,更适合JavaScript

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

陈宏鸿
05/07
0
0
JavaScript继承详解(一)

面向对象与基于对象 几乎每个开发人员都有面向对象语言(比如C++、C#、Java)的开发经验。 在传统面向对象的语言中,有两个非常重要的概念 - 类和实例。 类定义了一类事物公共的行为和方法;...

solu
2010/12/25
0
0
Javascript定义类(class)的三种方法

将近20年前,Javascript诞生的时候,只是一种简单的网页脚本语言。如果你忘了填写用户名,它就跳出一个警告。 如今,它变得几乎无所不能,从前端到后端,有着各种匪夷所思的用途。程序员用它...

陈一奇
2012/07/12
0
0
三分钟读懂Java与JavaScript的区别,让小白摘帽

Java跟JavaScript虽然在名称上有些许相似,但其实是两种完全不同的语言。Java是一种程序设计语言,JavaScript是客户端的脚本语言,把这两样东西放在一起比较在科学上其实并不严谨。但它们唯一...

小欣妹妹
2017/10/21
0
0
零基础的网站开发初学者如何系统的学习?

A.学习背景 开始网站开发,起先是从手机网站的UBB语法开始的,也因此有了深入学习的兴趣。为了让学习的热情膨胀,我有意的培养这一爱好 ,定位了自己要成为一名优秀的网站开发员的目标。 作为...

李佳顺
2012/12/25
0
3
第一章—JavaScript简介

一.①DOM:Document Object Model文件对象模型 ②AJAX:Asynchronous Javascript And XML异步Javascript和XML ③CSS,Cascading Style Sheets,级联样式表 ④ECMAScript(European Computer......

湖心亭看雪
2014/10/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Python3学习日志二 Python中的集合set和字典dict

1.集合set 定义一个集合set 我们可以看到定义集合set有两种不同的形式,如果要定义一个空的集合set不能用{}而是要用set();另外,集合是无序的,而且set中的元素是不可重复的,如果你定义了一...

Mr_bullshit
4分钟前
0
0
adb 操作指令详解

ADB,即 Android Debug Bridge,它是 Android 开发/测试人员不可替代的强大工具,也是 Android 设备玩家的好玩具。 注:有部分命令的支持情况可能与 Android 系统版本及定制 ROM 的实现有关。...

孟飞阳
11分钟前
0
0
nodejs安装以及环境配置(很好的node安装和配置文章,少走很多弯路)

一、安装环境 1、本机系统:Windows 10 Pro(64位) 2、Node.js:v6.9.2LTS(64位) 二、安装Node.js步骤 1、下载对应你系统的Node.js版本:https://nodejs.org/en/download/ 2、选安装目录进...

sprouting
28分钟前
0
0
Redisson

了解了Redisson,发现使用挺简单的,接下来准备深入学习一下。 Redisson介绍 Redisson是架设于Redis基础之上的一个Java驻内存数据网格(In-Memory Data Grid) Redisson在基于NIO的Netty框架上...

to_ln
28分钟前
0
0
python有哪些好玩的应用实现,用python爬虫做一个二维码生成器

python爬虫不止可以批量下载数据,还可以有很多有趣的应用,之前也发过很多,比如天气预报实时查询、cmd版的实时翻译、快速浏览论坛热门帖等等,这些都可以算是爬虫的另一个应用方向! 今天给...

python玩家
28分钟前
0
0
jq 判断复选框是否被选中,复选框后台接收

1. 效果 2. 代码 html部分: JS部分: var rememberLogin = $("#rememberLoginId").is(':checked')//获取复选框是否被选中 var rememberLoginval = $("#rememberLoginId").attr('value')//拿......

Lucky_Me
35分钟前
0
0
python爬虫日志(3)-爬去异步加载网页

在浏览器检查元素页面中,选取Network中的XHR选项即可观察每次加载页面,网页发出的请求,观察url的规律即可利用封装的函数对每一页进行爬取。

茫羽行
36分钟前
0
0
《趣谈网络协议》之为什么要学习网络协议?

一、协议 1.协议的定义 简单说协议就是一个规则,保证沟通交流双方可以互相听懂、理解或者可以双方合作可以顺利进行的一个约定和规则。 2.生活中例子 (1)有一种叫“程序猿”的物种,敲着一种...

aibinxiao
37分钟前
1
0
Python数据分析numpy基础-维度的认识

什么是多维数组? 核心对象是同型的多维数组(简单理解就是一个表格,通常内容都是些数字),具有相同的数据类型。 概念: 1. axes(轴):数组的维度统称为轴。 2. rank:轴的数量称为rank。...

十年磨一剑3344
41分钟前
0
0
Java 正则表达式相关资料

1.java正则表达式过滤html标签

IT追寻者
45分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部