关于JS原型对象的创建

原创 2013年12月04日 09:52:01

使用js的prototype属性的时候,创建对象的方式是存在优先级的

1、如果方法中存在构造方法就先使用方法中的构造方法

2、如果方法中不存在构造方法则继续查找prototype原型的构造方法

 

<html> 
<head> 
<TITLE>class_obj_js_class</TITLE> 
<script language=javaScript> 
function a(name){
	//alert(name);//弹出的值是undefined
	//alert(null==name);//true
	if(null == name){
		this.name = name;
	}
}

function b(name){
	//alert(name);//弹出的值是undefined
	//false,this.name没有重新赋值,还是new创建的值prototype.name="TOm"
	if(null != name){
		this.name = name;
	}
}

//有参构造方法
function c(name){
	//alert(name);//弹出的值是undefined
	//如果name为true则不管后面是什么就直接返回第一个值
	//如果name为false则不管后面是什么直接返回后面的值
	this.name = name || "Jack";//如果name为空则赋值为后面的Jack
}

//无参构造方法
function d(){
	
}

a.prototype.name = "Tom";
b.prototype.name = "Tom";
c.prototype.name = "Tom";
d.prototype.name = "Tom";

//有参构造方法
alert(new a().name); //undefined
alert(new b().name);//Tom
alert(new c().name);//Jack
alert(new d().name);//使用无参构造方法
</script> 

<body > 
</body> 
</html>

 

  

 

备注:

1、一般我们在方法中添加“对象”的属性

2、在prototype属性后面添加方法

这样做的目的是为了提高代码的复用,可以“无限”给对象添加方法,便于拓展

 

注意:为了提高JS的效率,要注意再使用prototype链的时候应该尽量限定在一、二级,因为浏览器会自动去循环遍历,深度太深了之后会影响效率

深入理解JavaScript的原型对象

JavaScript的继承机制是基于原型,而不是类。因此要理解JavaScript的继承机制,包括基于ES5的框架模型(例如Backbone)的继承机制,需要更深入了解原型对象。...
  • hongse_zxl
  • hongse_zxl
  • 2015年03月25日 16:13
  • 3625

JavaScript构造函数及原型对象

JavaScript中没有类的概念,所以其在对象创建方面与面向对象语言有所不同。 JS中对象可以定义为”无序属性的集合”。其属性可以包含基本值,对象以及函数。对象实质上就是一组没有特定顺序的值,对象中...
  • a153375250
  • a153375250
  • 2016年04月07日 10:00
  • 12716

JS面向对象-原型对象,实例对象,构造函数的关系

JS中每创建一个函数,该函数就会自动拥有一个prototype属性,为什么那??  因为最根上的object拥有一个prototype属性,而js中所有的对象又都继承自object,所以js中所有的对...
  • u014205965
  • u014205965
  • 2015年05月17日 22:30
  • 2938

js面向对象之常见创建对象的几种方式(工厂模式、构造函数模式、原型模式).docx

  • 2016年02月18日 09:37
  • 26KB
  • 下载

【JS】JavaScript中对象的创建与原型模式

JavaScript中对象的创建与原型模式
  • LZGS_4
  • LZGS_4
  • 2015年02月27日 23:59
  • 885

JS中使用动态原型模式、寄生构造函数模式、稳妥构造函数模式创建对象

承接上一篇,在JS中组合使用构造函数模式与原型模式创建对象今天接着说剩下几种模式: 动态原型模式 寄生构造函数模式(parasitic) 稳妥构造函数模式(durable)动态原型模式动态原型模式把所...
  • stanxl
  • stanxl
  • 2016年04月10日 09:57
  • 726

在JS中组合使用构造函数模式和原型模式创建对象

在JS中创建对象有很多种方法,而创建自定义类型的最常见的方式,就是使用组合使用构造函数模式和原型模式创建对象。构造函数模式用于定义实例属性,而原型模式用于定义方法和共享的属性,那么来看看为什么这种方式...
  • stanxl
  • stanxl
  • 2016年04月09日 23:16
  • 513

JS学习笔记-对象创建模式及原型

JS学习笔记-对象创建模式及原型一、JS对象创建的几种方式 1.1利用Object构造函数 var person = new Object(); //利用构造函数创建实例 pers...
  • Asesino_Y
  • Asesino_Y
  • 2016年12月07日 11:02
  • 125

JS原型+构造函数创建对象

JS原型+构造函数创建对象   JavaScript对象的创建方式 在JavaScript中,创建对象的方式包括两种:对象字面量和使用new表达式。对象字面量是一种灵活方便的书写...
  • wustzbq0713
  • wustzbq0713
  • 2015年06月06日 12:39
  • 660

js 创建对象与原型链继承

一、创建对象 object构造函数或者对象字面量都可以用来创单个对象,但是创建多个对象的时候会与大量的重复代码。以下通过分别介绍工厂模式、构造函数模式、原型模式、构造函数模式与原型模式的组合 ...
  • qq_27552077
  • qq_27552077
  • 2017年03月11日 15:17
  • 166
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于JS原型对象的创建
举报原因:
原因补充:

(最多只允许输入30个字)