码迷,mamicode.com
首页 > 其他好文 > 详细

面向对象初步理解

时间:2018-05-05 11:16:29      阅读:108      评论:0      收藏:0      [点我收藏+]

标签:性能   nbsp   构造函数   面向对象   span   name   抽象   result   构造   

oop:抽象,封装(只能通过对象来访问方法),继承(从已有对象),多态

 
oop组成:方法:对象下面的方法  arr.push()arr.sort()
                属性:对象下面的变量
 
例子:var obj=new Object();//创建一个空对象
         obj.name=‘小明’;
         obj.showNmae=function(){
         alert(this.name);//关键:this的用法
        }
         obj.showName();
 
工厂方式:面向对象的封装函数
function createPerson(name){
 //1、原料
  var  obj=new Object();
//2、加工
  obj.name=name;
  obj.showName=function(){
      alert(this.name);
};
//3、出场
return obj;
var p1=createPerson(‘小明’);//创建出来的对象,相当于obj
p1.showName();//调用对象方法
 
重点:当new去调用一个函数,此时this就是函数创建出来的对象,而且函数的返回值直接就是this啦(隐式返回)
上式可改为:
 
function createPerson(name){
     this.name=name;
     this.showName=function(){
          alert(this.name);}
var p1=new CreatePerson(‘小强’);
p1.showName();
 
 
对象的引用
基本类型:赋值的时候只是值的复制
对象类型:赋值不仅是值的传递也是引用的传递
   var a=【1,2,3】;
   var b=a;
   b.push(4);
   alert(a);  //【1,2,3,4】
   alert(b);  //【1,2,3,4】
 
原型
改写对象下面公用的方法或属性,让公用的方法或者属性在内存中存在一份(提高性能)
  
//原型:css中的class
//普通方法:css中的style
原型:prototype,要写在构造函数下面
var arr=【1,2,3,4,5】;
Array.prototype.sum=function(){
    var result=0;
    for(var i=0;i<this.length;i++){
     ;  result +=this【i】;
 }
alert(arr.sum())
 
 
 
this  指向问题
事件或者定时器,尽量让面向对象中的this指向对象
 
prototype 属性使您有能力向对象添加属性和方法。

面向对象初步理解

标签:性能   nbsp   构造函数   面向对象   span   name   抽象   result   构造   

原文地址:https://www.cnblogs.com/ou-blog/p/8993839.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!