JavaScript:定义对象

没有类,可以直接用对象。那么怎么定义对象呢?
prototype其实就是类定义
__proto__其实就是实例的定义
JS创建对象的几种方式

  1. 属性直接在构造函数中定义
  2. 函数在prototype中定义
function Parent(){  
  this.name="李小龙";  
  this.age=32;     
};   

Parent.prototype.lev=function() {  
   return this.name;  
};  
  
var  x =new  Parent();  
  
alert(x.lev()); 
  • 当然平时用的时候,可以直接new一个Object;属性直接加,方法还是加到prototype上。
  • JS在对象和类上面的做法相对于静态语言来说应该是简化了,不过还是有借鉴的影子。
  • 比如类和对象的关系,类是模板,对象是实例。这里将重点放在了对象上,类只是放在了一个隐藏属性prototype上,弱化了这种关系。
  • 这样做,其实是弱化继承,推荐用组合的方式解决问题
  • 所谓的“全局”,其实就是在一个window对象的内部,这跟当年的c的静态全局变量起到差不多的作用---隔离,文件内共享
  • 推荐用函数来解决问题,就“全局”函数好了,方便。一定要挂在某个对象下面,就要用到prototype,能不用就不用。
  • 类定义其实都是window对象的内部类,所以将函数加入对象意义不是很大。还是那句话,尽量用组合,不要用继承。
  • 对象定义,应该降格为字典来对待。用对象,可以用点语法,访问方便很多。不过JS的重点还是方便讲对象转字典,转JSON,方便网络传输。这个和静态语言的强调Model还是有侧重点区别的
  • 都是对象,包括数字也是对象;不过编程思维用过程和组合,少用面向对象的继承方式。
  • 这里主要用组合与过程,实现简单页面的功能。至于面向对象的设计,思路要变一变。

你可能感兴趣的:(JavaScript:定义对象)