JavaScript对象特性

什么是面向对象?

面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物
-选自百度百科
通俗的理解就是:万物皆对象!世界上的任何事和物都可以被视为对象,而我们需要关注的是对象本身可以实现的功能。

js中的面向对象

面向对象在js里有两个层次的含义:
一,使用面向对象函数
二,构造面向对象函数

面向对象的特点

  1. 继承:
    继承的意思是,在实现同一种功能的前提下,新对象可以使用旧对象的属性和方法。
/**
   -利用函数创建的作用域达到数据封装的目的
   -@type{{getName, setName}}
 */
 var obj = (function(){
       var name = "www";
       return {
           getName: function(){
               return name;
            },
            setName:function(){
               name = val;
            }
        }
 })();
 obj.name;
 bj.getName();

2 . 封装:即把能够实现功能的函数封装起来,在面向对象里叫做方法。简单来说就是把实现功能的函数写成方法。
继承在静态语言中,例如java有关键字。虽然在es6中也有extend以及class,但其本质仍实现的是基于原型机制的

/** 
  *j简单的es5原型继承
  *@constructor
  */
  var A = function(){
  };
  A.prototype = {name:"www};
  var B = function(){
  };
  B.prototype = new A();
  var b = new B();
  console.log(b.name);
/**
  *es6继承实现demo
  */
  class Peopel{
       constructors(){
            this.name = name;
       }
       getName(){
            return this.name;
        }
   class Black extends People{
       constructor(name){
            super(name);
        }
        speak(){
             return " Hello  World";
        }
    }
    var p = new Black("www");
    console.log(p.getName() + 'savs' + speak());
  1. 多态:一个变量在引用不同类型的情况下的不同状态。多态开发在开发组件和模块化开发的时候能节省很多资源。
/**
  *多态的实现案例
  *@param friut
  */
      var voild = function(friut){
       friut.sound();
       }
       var apple = function(){
       }
       var pin = function(){
       }
       apple.prototype.sound = function(){
            console.log("苹果");
        }
        pin.prototype.sound = function(){
            console.log("桃子");
        }
        voild(new apple());
        voild(new pin());
       
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值