猿问

关于JS浅拷贝和深拷贝的问题

function People () {
		this.name='codeman'
		
	};
	People.prototype = {
		
		showName : function () {
			alert(this.name);
		},
		showAge : function () {
			alert(this.age);
		}
		
	};
	
	function Student () {
		People.call(this);
		this.job='codeTeacher'
		
	};
	for ( var k in People.prototype){
		Student.prototype[k]=People.prototype[k];//这里的People.prototype[k]应该是一个方法(函数),也就是引用类型
		                                         // 那么当我更改Student里的showName方法的话,People里的不是也应该被改掉么,为什么没改掉
	}
	// Student.prototype=People.prototype
	Student.prototype.showJob=function () {
		alert(this.job);
	}
	Student.prototype.showName=function() {
		alert('superman');             
	}
	
	var peo = new People();
	peo.showName(); //还是‘codeman’


慕田峪8701529
浏览 1378回答 2
2回答

qq_药药_0

首先你这个没看错的话不是深克隆。深克隆的意思是,当你循环完对象之后。如果对象里面还有引用数据类型,如数组。还要遍历循环引用数据类型。你这个是浅克隆只循环了一遍,你寻找到的只是引用数据类型的指针,差不多就是这个意思。如果是深克隆,你自己还要写个判断函数,用递归。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答