关于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链的时候应该尽量限定在一、二级,因为浏览器会自动去循环遍历,深度太深了之后会影响效率

相关文章推荐

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

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

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

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

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

JS学习笔记-对象创建模式及原型一、JS对象创建的几种方式 1.1利用Object构造函数 var person = new Object(); //利用构造函数创建实例 pers...

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

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

js加强:原型,创建对象分析,继承

1.原型 (重点,难点) 讲师:觉月 概念: Function、Object:Js自带的函数对象。 prototype:每一个函数对象都有一个显示的prototype属性,它代表了对象的原型(...

js 创建对象与原型链继承

一、创建对象 object构造函数或者对象字面量都可以用来创单个对象,但是创建多个对象的时候会与大量的重复代码。以下通过分别介绍工厂模式、构造函数模式、原型模式、构造函数模式与原型模式的组合 ...

JS中定义对象方式四: 使用原型(prototype)方式创建对象之二(弊端及其改进)

/*弊端:如果使用原型方式创建对象,那么生成的所有对象会共享原型中的属性, 这样一个对象改变了该属性也会反应到其他对象当中。代码如下:*/ function Person() {} ...

JS中“创建对象”及“通过原型创建对象”浅析

JS中“创建对象”及“通过原型创建对象”浅析 这两天重新看着李炎恢的JavaScript视频学习了一遍,在看到第十五章 面向对象及原型 的时候,感觉必须要把所讲的知识点总结一下,以便...

JS中“创建对象”及“通过原型创建对象”浅析

这两天重新看着李炎恢的JavaScript视频学习了一遍,在看到第十五章 面向对象及原型 的时候,感觉必须要把所讲的知识点总结一下,以便今后查看: (备注:查看该篇博客时,请结合视频及视频课件) 一、...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于JS原型对象的创建
举报原因:
原因补充:

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