你的位置:首页 > Java教程

[Java教程]js闭包 和 prototype

 	function test(){ 		var p=200; 		function q(){ 			return p++; 		} 		return q; 	} 	var s = test(); 	alert(s()); 	alert(s());

  在外部访问函数内部的变量:通过函数内部的函数,return 出 函数内部的变量

 

	<script type="text/javascript"> 	 	//定义一个people类,包括eye和hand两个属性,和 run 的方法。 	function people(ec,hc){ 		this.eye = ec; 		this.hand = hc; 	}	 	people.prototype.run = function(){ 		console.log("人类用" + this.hand + "的腿跑步"); 	} 	//定义chin类,调用people 的 call 方法,继承people的 eye 和 hand 属性。 	function chin(ec,hc){ 		people.call(this,ec,hc); 	} 	//创造people类的原型副本(此时该原型副本的构造方法是指向people的,所以需要修正该构造方法,改成chin) 	var _prototype = Object.create(people.prototype); 	_prototype.constructor = chin; 	//把chin的原型赋值给 _prototype 。此时 chin 即继承了people的 run方法。但是没有改变people的原型。 	chin.prototype = _prototype; 	//给chin类增加一个 sw方法。 	chin.prototype.sw = function(){ 		console.log("中国人游泳很厉害"); 	} 	var s = new chin("黑眼睛","黄皮肤"); 	console.log(s); 	console.log(s.eye); 	console.log(s.run()); 	console.log(s.sw()); 	var p = new people("蓝眼睛","黑皮肤"); 	console.log(p); 	</script>

  结果如下: