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>

  结果如下:

 

call:

	function a(data){
 		alert(this.q + data);
 	}

 	var s = {
 		q:100
 	}
 	//call的第一个参数是 this,当传入 s 时,即把this 改成了 s ,可以访问 s 内部的变量q 。
 	a.call(s, 1);

  结果 alert 101

 

转载于:https://www.cnblogs.com/z360519549/p/5940224.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值