`
08284008
  • 浏览: 48875 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

javascript学习四

阅读更多

让一个函数对象被多个对象所共享,而不是每一个对象拥有一个函数对象。

<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完全学习手册内容简介:本书分4篇14章,介绍Javascript的知识,全书内容包括:Javascript语法基础、流程控制、函数、内置对象编程、文档对象模型DOM与事件驱动、处理XML、...

    PHP、MySQL与JavaScript学习手册 第4版

    PHP、MySQL与JavaScript学习手册 第4版.pdf

    Javascript学习安卓版

    Javascript学习是Android客户端目前最全面的免费离线Javascript学习书籍,从Html入门到Html样式设计,再到Javascript,提高网页设计能力。主要内容包括: 1、Html基本标签 2、Html表单知识 3、Web2.0(Div+Css样式)...

    Javascript学习(apk)

    Javascript学习是Android客户端目前最全面的免费离线Javascript学习书籍,从Html入门到Html样式设计,再到Javascript,提高网页设计能力。主要内容包括: 1、Html基本标签 2、Html表单知识 3、Web2.0(Div+Css样式)...

    javascript高级编程学习手册

    目录: 第一章 javascript语言概述 第二章 JavaScript语言基础 第三章 JavaScript事件处理 第四章 JavaScript基于对象编程 第六章 string,math,array等数据对象 第七章 window及相关顶级对象 第八章 document对象

    javascript完全学习手册1 源码

    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学习手册

    史上求全的JavaScript学习手册

    javascript完全学习手册2 源码

    第4章 JavaScript常用对象 4.1 Document对象 4.1.1 Document对象概述 4.1.2 使用Document对象 4.2 Form对象及其元素 4.2.1 Form对象概述 4.2.2 表单元素 4.2.3 表单元素属性和事件 4.2.4 表单验证 ...

    javascript作业题答案

    运用JavaScript可以做出非常绚的网页,相信我的代码会对你的学习有很大的帮助!

    javascript宝典 第四版

    本书是javascript经典图书《javascript宝典》第四版的中文版,是学习javascript编程的第一书籍。翻译比较好

    深入理解JavaScript系列

    本书共分四个部分,第1部分帮助读者快速入手,掌握基本的JavaScript编程要点;第2部分介绍JavaScript的发展和技术背景;第3部分深入探索JavaScript,介绍了语法、值、运算符、布尔类型、数字、字符串、语句、异常...

    javascript学习笔记.docx

    1 JavaScript基本语法 1) 读未声明的变量会产生错误。写未声明的变量会是JavaScript环境自动产生一个全局变量。 2) 对于完全等同“===”,两个null或者两个undefined是等同的;但null与undefined是不等同的。 3) ...

    前端学习笔记网站(HTML5+CSS3+JavaScript前端网页web课程设计).rar

    前端学习笔记网站(HTML5+CSS3+JavaScript前端网页web课程设计).rar前端学习笔记网站(HTML5+CSS3+JavaScript前端网页web课程设计).rar前端学习笔记网站(HTML5+CSS3+JavaScript前端网页web课程设计).rar ...

    JavaScript学习笔记讲解

    第 1 章 JAVASCRIPT的语法 1 1.1 什么是脚本程序和JAVASCRIPT 1 1.1.1 什么是脚本程序 1 1.1.2 Javascrpit的简介 1 1.2 脚本代码的位置 2 1.2.1 也可将javascript放入到单独的一个文件js文件,在需要使用的时候引入:...

    canvas JavaScript API学习

    canvas JavaScript API学习 收集这些资料真的好辛苦!

    javascript教案 JavaScript基础

    javascript学习指导,语法基础的指导及编写格式和方法的说明 第一章 概述 4 1.1 JavaScript的由来 4 1.2 什么是JavaScript 4 1.3 JavaScript的特点 4 1.3.1 javascript的优点 5 1.3.2 javascript的局限...

    JavaScript学习文档

    JavaScript语言参考 JavaScript教程 Scripting 运行时的参考 filesystemobject对象教程

Global site tag (gtag.js) - Google Analytics