`
laj12347
  • 浏览: 13731 次
  • 性别: Icon_minigender_1
  • 来自: 黑龙江
文章分类
社区版块
存档分类
最新评论

JavaScript 对象

阅读更多
本文讨论几种js创建对象的方法,先从最好理解
1、工厂模式开始:
<script text="javascript">
	function createPerson(name,age,job){ 
		var o =new Obeject(); 
		o.name = name; 
		o.age = age; 
		o.job = job; 
		o.sayName = function(){ 
			alert(this.name); 
		}; 
		return o; 
	} 
	
	var tanya = createPerson("tanya","30","female"); 
	var ansel = createPerson("ansel","30","male"); 
	tanya.sayName(); 
	ansel.sayName(); 
</script>

2、对象模式称为构造函数模式
<script text="javascript">
        //执行第一句代码前,js引擎会为我们生成一个对象
	function Person(name,age,job){ 
		this.name = name; 
		this.age = age; 
		this.job = job; 
		this.sayName = function(){ 
			alert(this.name); 
		}; 
        //此处有一个隐藏的return语句,用于将之前生成的对象返回。
	} 
	var tanya = new Person("tanya","30","female"); 
	var ansel = new Person("ansel","30","male"); 
	tanya.sayName(); 
	ansel.sayName(); 
</script>

3、原型模式
<script text="javascript">
	function Person(){} 
	
	Person.prototype.name = name; 
	Person.prototype.age = age; 
	Person.prototype.job = job; 
	Person.prototype.sayName = function(){ 
		alert(this.name); 
	}; 
	
	var person = Person(); 
	var person2 = Person();
</script>

如果使用原型对象方式,那么生成的所有对象会共享原型中的属性,这样一个对象改变了该属性也会反映到其他的对象当中。
4、使用原型+构造函数方式来定义对象
<script text="javascript">
	function Person(name,age,job){ 
		this.name = name; 
		this.age = age; 
		this.job = job; 
	} 
	Person.prototype.sayName= function(){ 
		alert(this.name); 
	}; 
	var tanya = new Person("tanya","30","female"); 
	var ansel = new Person("ansel","30","male"); 
	tanya.sayName(); 
	ansel.sayName(); 
</script>

使用原型+构造函数方式来定义对象,对象之间的属性互不干扰,各个对象间共享同一个方法。
  • 大小: 108.9 KB
  • 大小: 196.6 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics