让一个函数对象被多个对象所共享,而不是每一个对象拥有一个函数对象。
<script type="text/javascript">
function get(){
alert(this.username+" , "+this.password);
}
function createObject(username,password){
var obj=new Object();
obj.username=username;
obj.password=password;
obj.get=get;
return obj;
}
var obj1=createObject("hello","123");
obj1.get();
var obj2=createObject("word","456");
obj2.get();
</script>
构造函数方式:
不带参数的
<script type="text/javascript">
function person(){
//在执行第一行代码之前,js引擎会生成一个对象
this.username="hello";
this.password="123";
this.getInfo=function(){
alert(this.username+" , "+this.password);
}
//此处有一个隐藏的return语句,用于将之前的对象返回
}
var per=new person();
per.getInfo();
</script>
带参数的
<script type="text/javascript">
function person(username,password){
this.username=username;
this.password=password;
this.getInfo=function(){
alert(this.username+" , "+this.password);
}
}
var per=new person("hello","123");
per.getInfo();
</script>
原型(“prototype”)方式:
<script type="text/javascript">
//使用原型 (prototype)定义对象
function person(){}
person.prototype.username="hello";
person.prototype.password="123";
person.prototype.getInfo=function(){
alert(this.username+" , "+this.password);
}
var per=new person();
per.getInfo();
per.username="word";
per.getInfo();
</script>
单纯使用原型方式定义类无法在构造函数中为属性赋初值,只能在对象生成后再去改变属性值。
<script type="text/javascript">
//使用原型 (prototype)定义对象
function person(){}
person.prototype.username=new Array();
person.prototype.password="123";
person.prototype.getInfo=function(){
alert(this.username+" , "+this.password);
}
var per=new person();
per.username.push("hello");
per.username.push("word");
per.password="456";
per.getInfo();
var per2=new person();
per2.getInfo();
</script>
如果使用原型方式对象,那么生成的所有对象共享原型中的属性,这样一个对象改变了该属性,也会反映到其他对象当中。
使用原型和构造函数的方式定义对象,对象之间的属性互不干扰,各个对象间共享一个方法。
<script type="text/javascript">
//使用原型和构造方法创建对象
function person(){
this.username=new Array();
this.password="123";
}
person.prototype.getInfo=function(){
alert(this.username+" , "+this.password);
}
var p=new person();
var p2=new person();
p.username.push("hello");
p2.username.push("word");
p.getInfo();
p2.getInfo();
</script>
动态原型方式:在构造函数中通过标志量让所有对象共用一个方法,而每个对象都有自己的属性。(这样的话就和java所产生的对象就是一样的了。)
<script type="text/javascript">
function person(){
this.username="hello";
this.password="123";
if(typeof person.flag=="undefined"){
alert("invoke");
person.prototype.getInfo=function(){
alert(this.username+" , "+this.password);
}
person.flag=true;
}
}
var p=new person();
var p2=new person();
p.getInfo();
p2.getInfo();
</script>
javascript中的继承:
对象冒充
<script type="text/javascript">
//继承方式:第一种 对象冒充
function parent(username){
this.username=username;
this.sayHello=function(){
alert(username);
}
}
function child(username,password){
//最关键的三行代码
this.method=parent;
this.method(username);
delete this.method;
this.password=password;
this.sayWord=function(){
alert(password);
}
}
var p=new parent("hello");
var c=new child("word","123");
p.sayHello();
c.sayHello();
c.sayWord();
</script>
call方法方式:
call方法是Function对象中的方法,因此我们定义的每一个函数都拥有该方法。可以通过函数名来调用call方法,call方法的第一个参数传递给函数中的this,从第二个参数开始,逐一赋值给函数中的参数。
<script type="text/javascript">
//继承的第二种实现方式:call方法方式,Function对象中的方法。
function test(str,str1){
alert(this.name+" , "+str+" , "+str1);
}
var obj=new Object();
obj.name="hello";
//test.call相当于调用了test()方法
test.call(obj, "word","!");//将obj赋给了this
</script>
分享到:
相关推荐
JavaScript学习(一) JavaScript是一种广泛应用于网页和网络应用的脚本语言,由 Netscape 的 Brendan Eich 在1995年发明。它主要用于客户端的网页交互,赋予网页动态功能,如响应用户操作、处理数据、与服务器通信...
这份"JavaScript学习指南"高清PDF,无疑为想要深入理解JavaScript的初学者或有一定基础的开发者提供了宝贵的资源。下面,我们将深入探讨JavaScript的一些关键知识点。 1. **基础语法**:JavaScript的基础包括变量、...
### PHP、MySQL与JavaScript学习手册知识点详述 #### 标题与描述中的核心知识点解析 **标题:“PHP, MySQL, and JavaScript 学习手册”** 该手册旨在为非程序员提供一个简单、精炼的指南,帮助他们快速掌握如何...
PHP、MySQL与JavaScript学习手册 第4版.pdf
本“JavaScript学习指南”源代码包含了深入理解并掌握JavaScript编程的关键知识点。 一、基础语法 JavaScript的基础语法包括变量声明(var、let、const)、数据类型(如字符串、数字、布尔值、null、undefined、...
这份"非常全面的JavaScript学习资料"压缩包,包含了11个深入学习JavaScript的文件,旨在为学习者提供一个详尽且丰富的学习路径。 1. **基础概念**:JavaScript的基础包括变量、数据类型(如字符串、数字、布尔值、...
这个名为"JavaScript学习样例源码"的压缩包显然包含了一些用于教学和实践的JavaScript代码示例,旨在帮助初学者更好地理解和掌握JavaScript的核心概念。 1. **DOM操作**:在JavaScript中,Document Object Model ...
Javascript学习是Android客户端目前最全面的免费离线Javascript学习书籍,从Html入门到Html样式设计,再到Javascript,提高网页设计能力。主要内容包括: 1、Html基本标签 2、Html表单知识 3、Web2.0(Div+Css样式)...
个人Javascript学习笔记 精华版 本资源为个人Javascript学习笔记的精华版,涵盖了Javascript的基础知识、事件处理、对象和系统函数、浏览器对象等方面的内容。下面是对每个知识点的详细说明: 1. 什么是JavaScript...
本书“JavaScript学习指南”旨在帮助初学者和有经验的开发者深入理解和掌握JavaScript的核心概念和技术。 首先,JavaScript在网页中的主要作用是处理用户交互、操作DOM(文档对象模型)、进行AJAX(异步JavaScript...
本资源包"JavaScript学习资料全面整理"显然是为了帮助初学者和进阶者深入理解这门语言,包含了各种资源,下面将对JavaScript的一些关键知识点进行详细阐述。 1. **基础概念**:JavaScript是一种解释型、弱类型、...
这篇教程——"JavaScript学习手册十四:HTML DOM-文档元素的操作(二)"深入探讨了如何使用JavaScript来操纵HTML文档中的元素,进一步提升网页动态性和交互性。 DOM是HTML和XML文档的一种结构化表示,它将网页内容...
Javascript学习是Android客户端目前最全面的免费离线Javascript学习书籍,从Html入门到Html样式设计,再到Javascript,提高网页设计能力。主要内容包括: 1、Html基本标签 2、Html表单知识 3、Web2.0(Div+Css样式)...
JavaScript学习是一个持续的过程,随着技术的发展,新的API和最佳实践不断涌现。因此,保持学习和关注最新的前端趋势至关重要。同时,实践是检验知识的最好方式,多做项目、参与开源社区,可以提升你的技能并积累...
四、字符串遍历 JavaScript提供了`for...of`循环来遍历字符串,每个迭代返回一个Unicode编码的字符。 五、字符串方法扩展 1. `trim()`: 去除字符串两端的空白符。 2. `includes()`, `startsWith()`, `endsWith()`: ...
目录: 第一章 javascript语言概述 第二章 JavaScript语言基础 第三章 JavaScript事件处理 第四章 JavaScript基于对象编程 第六章 string,math,array等数据对象 第七章 window及相关顶级对象 第八章 document对象
1.2 JavaScript的应用 4 1.2.1 客户端应用 5 1.2.2 服务器端应用 5 1.3 在Web页面中使用JavaScript 5 1.3.1 HTML的基本结构 5 1.3.2 在HTML中嵌入JavaScript 7 1.3.3 链接JavaScript文件 9 1.4 编写JavaScript的工具...
以下是一些关于JavaScript学习的关键知识点: 1. **基础语法**:JavaScript的基础包括变量、数据类型(如字符串、数字、布尔值、null、undefined)、操作符(算术、比较、逻辑)、流程控制(条件语句、循环语句)...