javascript prototype笔记(其二)

本文深入解析JavaScript中原型链的概念与实现机制,详细解释如何通过原型链进行继承,并探讨其在实际开发中的应用与注意事项。
<script>
 
 function People(){
 
	this.action=function(){
		return "Manufact";
	}
	this.sk="many";
	this.skill=function(){
		return "$"+this.sk;
	}
	
 }
//静态方法(类方法)
People.skill=function(){
	return "skill :static  function";
}
 
 function BangZi(){
 
	this.sk="paocai\zhengrong";
	this.skill=function(){
		return this.sk;
	}

	
 }
//理解1:BangZi把所有People的属性、方法克隆[not extend]
//理解2:Objective-C中的Category Extension
BangZi.prototype=new People();

var bz=new BangZi();
console.log(bz.action());//打印 $Manufact
//BangZi 不会扩展已拥有的同名方法或属性
console.log(bz.skill());//打印 paocai\zhengrong

//如果需要使用BangZi的实例调用People的对象方法skill,如果存在同名属性,优先使用调用者BangZi的实例的属性
var pp=new People();
console.log(pp.skill.call(bz));//打印 $paocai\zhengrong

console.log(People.skill.call());//打印 skill :static  function
 </script>


转载于:https://my.oschina.net/freddon/blog/494346

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值