javascript对象的理解

从代码中体会javascript中的对象:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>js demo</title>
		<script type="text/javascript" charset="utf-8">
		// 定义一个方法,这样只有触发事件调用
		function myFunction() {

			var person = {
				fname: "Bill",
				lname: "Gates",
				age: 56,
				// 理解为Java对象里面的静态方法和属性,所以不用实例化就可以访问获取
				setFname:function(name) {
					this.fname = name;
					console.info(this.fname);
				}
			};
			console.info(person);
			// 定义一个数组
			var persons = new Array();
			person.setFname("Guxingzhe")
			persons.push(person);
			persons.push(person);
			persons.push(person);
			console.info(persons);

			function User(name,age){
				contry = "China";//私有不可访问
				this.name = name;//公有可以访问(判断是否带this)
				this.age = age;
				this.canFly = false;
				this.eat = function() {
					console.info("吃饭");
				}
			}
			// 通过原型函数,继承覆盖toLocaleString方法
			User.prototype.toLocaleString = function(){
				return this.name + ":" + this.age + ":" + this.canFly;
			};
 			var user=new User();
 			user.eat();
 			console.info(user);
 			console.info ((user.name="guxingzhe") + ":" + (user.age=12) + ":" + user.canFly);
 			var users = new Array();
 			users.push(new User("guxingzhe1", 12));
 			users.push(new User("guxingzhe2", 12));
 			users.push(new User("guxingzhe3", 12));
 			console.info(users.toLocaleString());//类似java里面的toString
 			for(var i = 0; i < users.length; i++) {
 				console.info(users[i].name);
 			}
		}

		// 定义一个小车对象,里面有属性及方法
		// 本人理解为Java中对象里定义类静态方法,所以可以直接访问不用实例化在访问属性
		var car = {
			pointX:10,
			pointY:100,
			run:function() {
				console.info("run method");
			},
			stop:function() {
				console.info("stop method");
			},
			start:function() {
				console.info("start method");
			},
			point:function() {
				// 记得加this,不然会解析器认为是方法里面的属性,识别为未定义
				console.info(this.pointX + ":" + this.pointY);
			}
		}
		car.run();
		car.stop();
		car.start();
		car.point();
		// 对象方法
		function people(firstname, lastname, age, eyecolor) {
			this.firstname = firstname;
			this.lastname = lastname;
			this.age = age;
			this.eyecolor = eyecolor;
		}
		// 实例化一个对象方法
		people = new people("John", "Doe", 50, "blue");
		// 打印对象方法的属性
		console.info(people.firstname + " is " + people.age + " years old.");
		</script>
	</head>
	<body>
		<button onclick="myFunction()">触发</button>
	</body>
</html>

调试环境火狐+firebug.

运行效果如下:

时间: 2024-08-29 16:15:56

javascript对象的理解的相关文章

谈谈对Javascript构造函数和原型对象的理解

对象,是javascript中非常重要的一个梗,是否能透彻的理解它直接关系到你对整个javascript体系的基础理解,说白了,javascript就是一群对象在搅..(哔!). 常用的几种对象创建模式 使用new关键字创建最基础的对象创建方式,无非就是和其他多数语言一样说的一样:没对象,你new一个呀! var gf = new Object(); gf.name = "tangwei"; gf.bar = "c++"; gf.sayWhat = function

深入理解javascript对象系列第二篇——属性操作

× 目录 [1]查询 [2]设置 [3]删除[4]继承 前面的话 对于对象来说,属性操作是绕不开的话题.类似于“增删改查”的基本操作,属性操作分为属性查询.属性设置.属性删除,还包括属性继承.本文是对象系列的第二篇——属性操作 属性查询 属性查询一般有两种方法,包括点运算符和方括号运算符 var o = { p: 'Hello World' }; o.p // "Hello World" o['p'] // "Hello World" [注意]变量中可以存在中文,因

javascript对象的一点理解

<script type="text/javascript"> /* js对象:对象的职责是调用属性和调用方法 */ //1.对象的创建的三种方式 var obj = {}; //常用且不会浪费空间 var obj = new Object(); //var obj = Object.create(); /* 第三种方式测试的时候有问题,百度下,发现 Object.create() 方法创建一个拥有指定原型和若干个指定属性的对象. 参数: prototype 必需. 要用作

JavaScript大杂烩4 - 理解JavaScript对象的继承机制

面向对象之继承 JavaScript是单根的面向对象语言,它只有单一的根Object,所有的其他对象都是直接或者间接的从Object对象继承(没有指定父类的对象,都被认为是从Object继承的). 在前面我们讨论了面向对象的封装性,在最后的地方也谈到了JavaScript的继承是通过原型和原型链实现的,下面我们就详细的展开这个问题:JavaScript到底是如何实现继承的? 继承的本质 继承的本质是重用,从语法上来讲,继承就是"D是B"的描述,其中B是基类,描述共性,D是子类,描述特性

如何理解javaScript对象?

在我们生活中,常常会提到对象一词,如:你找到对象了吗?你的对象是谁呀?等等. 在我们家庭中,有男友的女青年都会说我有对象了,那么她的对象是XX(她的男友). 夫妻间呢?都会说我的爱人是谁谁谁,现在我们应知道什么是对象了吧. 有一句谚语:万物皆对象,在我们开发者眼中,程序是反应现实生活的.那我们如何在javaScript中写脚本进行反馈生活需求信息呢? 在我们javaScript的函数中定义多个属性和函数就是一个javaScript对象. 理念概念中的定义:面向对象(object-oriented

JavaScript大杂烩6 - 理解JavaScript中的this

在JavaScript开发中,this是很常用的一个关键字,但同时也是一个很容易引入bug的一个关键字,在这里我们就专门总结一下页面中可能出现的this关键字(包括几种在其他页面文件中出现的this). JavaScript中的this关键字通常只使用在函数中,它指向当前函数的调用者,这是this关键字的本质,所有的使用方式都是围绕这个展开的,让我们来看一下在各种性质的函数中this的用法.1. 在对象的函数中使用this var person = { name: 'Frank', say: f

javascript对象转化为基本数据类型规则

原文:Object-to-Primitive Conversions in JavaScript 对象转化为基础数据类型,其实最终都是用调用对象自带的valueOf和toString两个方法之一并获得其返回值,作为其基础数据类型. 基础数据类型包括这么几种:null, undefined, number, boolean, string 内部实现机制 但是什么时候调用valueOf,什么时候调用toString,却困惑了很长一段时间. var obj = { toString: function

JavaScript:彻底理解同步、异步和事件循环(Event Loop) (转)

原文出处:https://segmentfault.com/a/1190000004322358 一. 单线程 我们常说"JavaScript是单线程的". 所谓单线程,是指在JS引擎中负责解释和执行JavaScript代码的线程只有一个.不妨叫它主线程. 但是实际上还存在其他的线程.例如:处理AJAX请求的线程.处理DOM事件的线程.定时器线程.读写文件的线程(例如在Node.js中)等等.这些线程可能存在于JS引擎之内,也可能存在于JS引擎之外,在此我们不做区分.不妨叫它们工作线程

深入JavaScript对象创建的细节

最近深入学习javascript后,有个体会:面向对象的方式编程才是高效灵活的编程,也是现在唯一可以让代码更加健壮的编程方式.如果我们抛开那些玄乎的抽象出类等等思想,我自己对面向对象的从写程序的角度理解就是:复用和封装.复用具体就是让你尽量少写重复代码,封装就是将一些耦合度很高的逻辑放到一个程序块里,而且尽量让里面内容不受外界影响.最后的结论是:优秀的javascript代码都是面向对象的.定州市科技工业局 如何构建javascript对象?ECMA-262对对象的定义是:无序属性的集合,其属性