美文网首页
JS面向对象

JS面向对象

作者: 欣_m | 来源:发表于2019-07-31 21:29 被阅读0次

1.字面式创建对象

(主要适用于一个实例对象的场合,缺乏封装性和重用)

<script type="text/javascript">

        var person = {    //对象

            name:"周杰伦",//属性

            age:40,

            job:"singer",

            song:"一路向北",

            sing :function(){ //方法

                alert(this.song);

            }

        };

    person.sing(); //调用person中的sing方法

    </script>

2.new 操作符 + Object 创建对象

<script type="text/javascript">

        var person = new Object(); //new一个对象

        person.name="周杰伦"; //给对象的各个属性赋值

        person.age=40;

        person.job="singer";

        person.song=["七里香","花海","一路向北"]; //数组

        person.sing = function(){   //sing方法

            alert(person.name);

            for(var i=0;i<person.song.length;i++){

                alert(person.song[i]); //输出数组中的三个元素

            }

        }

 person.sing();//调用sing方法

 </script>

3.工厂模式创建对象

(没有解决对象识别的问题,本例中,得到的都是obj对象,对象的类型都是Object)

<script type="text/javascript">

        function creatPerson(name,age){  //在函数名中加入形参

         var obj = new Object(); //new Object对象

            obj.name=name;  //为对象obj赋值

            obj.age=age;

            obj.sayName=function(){ //obj的方法

                alert(this.name);

            };

            return obj; //返回对象

        }

        var person1 = creatPerson("周杰伦",40);

        person1.sayName();

    </script>

4.组合使用构造函数创建对象 (构造函数以大写字母开头)

构造函数可以创建多个不同属性值的对象,原型模式可以用于定义方法和共享的属性,我们可以将这两种模式结合起来,这种模式现在是使用最广泛的一种模式。

我们创建的每个函数都有一个prototype(原型)属性,这个属性是一个指针,指向一个对象,而这个对象的用途是包含可以由特定类型的所有实例共享的属性和方法。使用原型对象的好处是可以让所有对象实例共享它所包含的属性和方法。

构造函数模式用于定义实例属性,而原型模式定义方法和共享的属性。这种混合模式还支持向构造函数传递参数。

<script type="text/javascript">

        function Person() {       //构造函数

            Person.prototype.name = "Nick";  //原生属性

            Person.prototype.age = 29;

            Person.prototype.job = ["singer", "dancer"];

            Person.prototype.sayName = function () {

                alert(this.name);

            }

        }

        var person1 = new Person(); //对象1

        person1.job.push("actor"); //对象可以使用原生属性

        document.write(person1.job);

        document.write("<br/>");

         var person2 = new Person();//对象2

        person2.name = "Lily";

        document.write(person2.name);

    </script>

相关文章

  • JS面向对象精要(二)_函数

    JS面向对象精要(一)_原始类型和引用类型JS面向对象精要(二)_函数JS面向对象精要(三)_理解对象JS面向对象...

  • JS面向对象精要(三)_理解对象

    JS面向对象精要(一)_原始类型和引用类型JS面向对象精要(二)_函数JS面向对象精要(三)_理解对象JS面向对象...

  • JS面向对象精要(四)_构造函数和原型对象

    JS面向对象精要(一)_原始类型和引用类型JS面向对象精要(二)_函数JS面向对象精要(三)_理解对象JS面向对象...

  • JS面向对象精要(五)_继承

    JS面向对象精要(一)_原始类型和引用类型JS面向对象精要(二)_函数JS面向对象精要(三)_理解对象JS面向对象...

  • js 面向对象和面向过程

    js 面向对象和面向过程

  • 面向对象OOP--JS

    作者:烨竹 JS面向对象简介 JS名言:万物皆对象 JS面向对象比PHP简单很多;因为JS中没有class关键字,...

  • JavaScript笔记(一)

    一、面向对象面向过程的区别 1、什么是js对象 js对象:属性和方法的集合,js所有数据都可以看成对象...

  • JS面向对象

    JS面向对象入门 1、面向对象语言概念面向对象语言主要包括 类、对象、封装、多肽。2、面向对象的编程思想面向过程思...

  • 2018-01-18

    js中的面向对象核心 js是基于对象的编程语言,在后面的学习中我们通过一种模式使其转化成为面向对象的语言。js面向...

  • 浅谈JS中的面向对象

    浅谈JS中的面向对象 本文主要说说本人在JS中对面向对象的理解。 计算机编程语言主要分为面向过程式编程和面向对象式...

网友评论

      本文标题:JS面向对象

      本文链接:https://www.haomeiwen.com/subject/cjjxdctx.html