JavaScript面向对象

①JavaScript一切都派生于现有对象的一个副本,即对象赋值跟另一个对象,只是复制对象的副本,并不是指针引用,两者之间的属性值改变,并不相互影响 

②对象=关联数组=属性包=存储体,即键/值形式,<属性名/属性值>或<函数名/函数动作>等 

③原型中读取的时候从原型链上读取,写入的时候往自己里面写,即读取的时候先从自身查找,没有则从上层父类查找,直至顶层Object对象,而写入则只是写在自身之中 

实例解析: 

<script> 
/*对象赋值,只是复制对象的副本,两者之间的属性值的改变并不相互影响*/ 
var person={}; 
person.name="person"; 

var student={}; 
student.name=person.name; 

person.name="hzp"; 

alert(person.name); //打印hzp 
alert(student.name);//打印person 


/*********类的继承********/ 

function Person(){ 
this.name="person"; 
this.getName=function(){ 
  alert(this.name); 



function Student(){ 


Student.prototype=new Person(); //继承Person 

function init(){ 
var s1=new Student(); 
s1.getName();//打印person 
alert(s1.age);//原型中读的时候从原型链上读,先从Student自身找age,没有就从上层父类Person找,直至顶层父类Object,最终没有找到,打印undefined 
Person.prototype.age=22; 
var s2=new Student(); 
s2.name="hzp"; 
s2.getName(); 
alert(s2.age); //原型中读的时候从原型链上读,先从Student自身找age,没有就从上层父类Person找,结果找到了age 


init(); 

/***原型中读的时候从原型链上读,写的时候往自己里面写****/ 

function object2(){ 

function object3(){ 

var obj3=new object2(); 
Object.prototype.foo=function(){ 
alert("object"); 

obj3.foo(); //读的是Object里的foo 

object2.prototype.foo=function(){ 
alert("object2"); 

obj3.foo();//读的是object2里的foo 
</script> 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值