码迷,mamicode.com
首页 > Web开发 > 详细

js理解面向对象(一)

时间:2019-02-14 13:24:58      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:style   cti   his   margin   一个   第一步   []   bsp   struct   

一、什么是对象:

  在java、actionscript等语言中都有对象(类的概念),我的理解是对象就是属性和方法的集合,在编程语言中有一句话叫一切皆对象,Object对象是所有对象的基类,都是继承Object;

二、在js中对象的创建:

1、用new关键字创建对象:

var obj=new Object();

new 关键字是语法糖,他创建了一个实例对象,继承了Object的属性和方法,以下是new 经历哪些步骤和代码模拟

<script type="text/javascript">
    function Persion(){
        /**
        *func:构造函数
        */
        this.dec="这是描述";
    }
    Persion.prototype.sayHell=function(){
        console.log("您好");
    }

    function desaginNew(tt){
        /*
        *func:模拟new关键字;
        */
        //第一步:创建新的对象;
        var obj={};
        var creatObj=[].shift.call(arguments);

        //第二步:改变this指向,把新的对象的_proto_指向Persion对象的prototype原型对象;
        obj._proto_=creatObj.prototype;

        //第三步:执行构造函数的代码为新对象添加属性和方法;
        Persion.call(obj);

        //第四步:返回对象;
        return obj;
    }
    var newPersion=desaginNew(Persion);
</script>

 

2、用字面量创建对象:

var obj={name:"",age:"",say:function(){}};

3、构造函数创建对象:

构造函数:在java语言中类的定义中都有构造函数,在js中也有构造函数的概念,Object对象都有constructor构造函数方法;

js中Object对象都有以下属性和方法:

1、constructor:构造函数属性,它指向了Object()函数;

2、hasOwnProperty:判断是否是对象自身属性和方法;

3、isPrototypeOf:判断是否是某个对象的子对象即继承某对象;

    function Persion(){
        /**
        *func:构造函数
        */
        this.name="名字";
        this.say=function(){
            console.log("您好");
        }
    }
    //自身属性要实例化后才能访问属性和方法;
    console.log(new Persion().name);//"名字"
    console.log(new Persion().say());//"您好;

4、es6中新增class关键字创建类

 

 

js理解面向对象(一)

标签:style   cti   his   margin   一个   第一步   []   bsp   struct   

原文地址:https://www.cnblogs.com/Gonghong/p/10373660.html

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