当前位置:首页 > H5 > 正文内容

js原型对象的缺点,js原型链及其优缺点

高老师9年前 (2017-10-07)H53495
//原型的缺点
function Box(){}
Box.prototype={
	'name':'gao',
	 age:23,
	 family:['哥哥','姐姐','妹妹'],
	 run:function(){
		return this.name+'--'+this.age;
	 } 
}

//1.缺少构造函数来初始化参数
var  box1=new Box();
var  box2=new Box();

box1.age=12;
//2.原型中存在引用类型,多个实例会共享.例如1个追加数组元素,其他实例同时被追加
box1.family.push('弟弟');
console.log(box1.family);
console.log(box2.family);
console.log(box2.age);


//3.解决以上2个问题

//不需要共享的使用构造方法
function  BBox(name,age){
	this.name=name;
	this.age=age;
	this.family=['1','2','3'];
}
//需要共享的地方使用原型
BBox.prototype={
	constructor:BBox,
	run:function(){
		return this.name+'--'+this.age+'--'+this.family;
	}
}
var bbox1=new BBox('gao',23);
console.log(bbox1.run());

//4.由于在原型中,不管你是否调用了共享方法,它都会初始化一遍,于是我们可以简化如下.简称动态原型模式

function  BBBox(name,age){
	this.name=name;
	this.age=age;
	this.family=['1','2','3'];
	//原型只需要执行1次,立即共享
	if(typeof this.run !='function'){
		BBBox.prototype.run=function(){
			return this.name+'--'+this.age+'--'+this.family;			
		}	
	}
}

var  BBBox1=new BBBox('chen',24);
console.log(BBBox1.run());

扫描二维码推送至手机访问。

版权声明:本文由高久峰个人博客发布,如需转载请注明出处。

本文链接:https://blog.20230611.cn/post/262.html

分享给朋友:

“js原型对象的缺点,js原型链及其优缺点” 的相关文章

Javascript-WebSql的用法

Javascript-WebSql的用法

    WebSql的原理是浏览器集成了sqllite数据库,Js操作,浏览器协助完成,没有多复杂。<!--          三个核心方法   ...

Js显示本周星期对应的日期,非固定,周一,周三,周六

Js显示本周星期对应的日期,非固定,周一,周三,周六

开发需求如下,商品下单后需要指定送到日期:送达日期为周一 周三  周六 ,如果今天周一,用户选择周一即为下一周周一。代码如下:<html> <head> <meta charset="utf-8"> <title>...

 js构造函数

js构造函数

工厂模式虽然解决了创建多个对象的问题,但是并没有解决识别对象从属的问题.因为都属于object.因此出现了构造函数//构造函数名称首字母大写是规范 function Box(name,age){ this.name=name; this.age=age; this.run=funct...

es6模板字符串

es6模板字符串

在es5的时候变量只能通过+号拼接,es6种允许将变量放在大括号之中。有点类似php和c#对字符串的操作。    <script type="text/javascript">    &n...

setTimeout在循环执行顺序的思考

setTimeout在循环执行顺序的思考

朋友面试时候遇到的问题,我天真的认为会输出0,1,2,但是实际一直只输出2,2,2。通过了解才执行Js自身是单线程的环境,for循环本身是同步代码,setTimeout是异步代码。单线程的语言不能同时做2件事情,必须做出选择。于是Js引擎决定了当我执行完成同步的代码,再去执行异步的代码。当执行异步的...

 chrome修改js函数,chrome修改js代码,网页上修改js代码

chrome修改js函数,chrome修改js代码,网页上修改js代码

(1).如果js函数代码在html中写的,例如下面的代码:<html> <head> <meta charset="utf-8"> </head> <body> <a onclick="...