美文网首页
JavaScript创建对象的常用方法

JavaScript创建对象的常用方法

作者: 紫荆峰 | 来源:发表于2017-01-03 17:58 被阅读0次

0.前言

有一段时间没写博客了,上次我们说了一种用字面量方法创建对象病房舒文属性和方法,这一次和大家分享另外两种常用方法:

  • 工厂模式创建对象(返回对象的函数)并访问属性和方法
  • 构造函数创建对象并访问属性和方法

1.工厂模式创建对象(返回对象的函数)并访问属性和方法

代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>工厂模式创建对象(返回对象的函数)并访问属性和方法</title>
</head>
<body>
    <script type="text/javascript">
    //使用工程模式可以快速、大量的创建拥有相同属性和行为的对象
        function createGirlFriend(a){
            return {
                name: a,
                eat: function(){
                    console.log("吃");
                }
            };
        }

        var girl1 = createGirlFriend("二雷");
        var girl2 = createGirlFriend("三雷");

        console.log(girl1);
        console.log(girl2);

        console.log(typeof girl1);


        //访问属性与方法
        console.log(girl1.name);
        girl1.eat();



        //动态增加属性
        girl1.age = 17;
        console.log(girl1);
        console.log(girl2);

        //动态增加方法
        girl1.eat = function() {
            console.log("eat");
        };

        //动态删除
        delete girl1.age;
        delete girl1.eat;


    </script>
</body>
</html>

2.构造函数创建对象并访问属性和方法(常用)

构造函数(就是函数,为了做区分,一般我们将构造函数的首字母大写)
注意:构造函数声明后不会被执行,仅仅是定义了一个用于这些属性和方法的"类型",没有任何对象的实例产生
(1)声明构造函数

function GirlFriend(name, age, height, weight) {
            //属性
            this.name = name;
            this.age = age;
            this.height = height;
            this.weight = weight;

            //函数内部普通变量看成是对象的私有属性(外部无法访问)
            //可以通过中间函数间接访问
            var _money = 10000000;
            this.setMoney = function(money) {
                _money = money;
            };
            this.getMoney = function(){
                return _money;
            };

            this.eat = function() {

                console.log("吃");
                console.log(_money);
            };
        }

(2)创建对象
公式:var 对象名 = new 构造函数名(参数列表);
扩展:new 构造函数名(参数列表)的讲解
1.在堆区开辟出一片空间用来保存对象;
2.将对象中对应的属性进行赋值;
3.返回对象的引用(栈区)。

var girl1 = new GirlFriend("大雷", 20, 150, 180);
console.log(girl1);

结果:

捕获.PNG
(3)间接访问私有属性
girl1.setMoney(100);
console.log(girl1.getMoney());
girl1.eat();

结果:

捕获.PNG
(4)多个对象之间相互不影响
var girl2 = new GirlFriend("二雷", 19, 1500, 1800);
console.log(girl2.age);
console.log(girl2.getMoney());

结果:

捕获.PNG
(5)添加静态方法
GirlFriend.staticFunc = function() {
    console.log("我是静态函数");
};
//调用静态函数
GirlFriend.staticFunc();

注意:条用静态方法,要用构造函数名调用。

//添加属性
        girl1.faceValue = 100;
        //添加方法
        girl1.run = function() {
            console.log("run");
        };
        girl1.run();

        //删除
        delete girl1.faceValue;
        delete girl1.run;

3.传递对象

  声明两个变量,引用同一个对象,那么这两个变量相同吗?答案是肯定不相同,这是两个不同的变量。

var obj1 = {
            name:"sunck",
            age:18,
            height:175,
            weight:65,
        };

        //obj3与obj1引用的是同一个对象,但是这是两个不同的变量
        var obj3 = obj1;

        obj1.height = 180;
        console.log(obj3.height);

4.传递的比较

var obj1 = {
            name : "wh",
            age : 18,
            height : 175,
            weight : 65,
        };
        var obj3 = obj1;
        console.log(obj1 == obj3);
        console.log(obj1 == obj3);



        var obj5 = {
            name : "wh",
            age : 18,
            height : 175,
            weight : 65,
        };
        console.log(obj1 == obj5);
        console.log(obj1 == obj5);

结果:

捕获.PNG
总结:①两个对象比较仅且当这两个引用是同一个对象时才真的相等。
②如果两个引用指向的是不同的对象,但是对象的属性与行为完全相同的,那么这两个对象也是不相等的。

5.好长没有写博客了,有点生疏,希望多多见谅啊!!!

相关文章

  • JavaScript创建对象的常用方法

    0.前言 有一段时间没写博客了,上次我们说了一种用字面量方法创建对象病房舒文属性和方法,这一次和大家分享另外两种常...

  • Javascript全局属性和方法

    JavaScript 全局属性和方法 JavaScript 可用于创建Javascript对象。 CONTENT ...

  • [Effective Java] (01)静态工厂方法代替构造器

    1. 创建对象 1.1 构造方法创建对象 在Java中,创建对象常用的方法是通过公有的构造方法创建;如:Boole...

  • Ⅷ.I/O

    一、文件对象 创建对象 常用方法 二、

  • javascript中常用的创建对象的方法

    js中创建对象最简单的方法自然是直接new一个Object然后再为其添加属性和方法,例如一下代码: 但这样显然封装...

  • 原型链与继承

    创建对象的方法 字面量创建 构造函数创建 Object.create() 原型 JavaScript 的所有对象中...

  • 第二篇 关于对象

    写在前面:这次来说下 JavaScript 中对象的创建,文中提到的方法均较为常用,其他方法请自行百度。 2.1 ...

  • 链式操作

    对象字面量创建对象 构造函数创建对象 构造函数和原型一起创建对象 参考 JavaScript设计模式 --- 方法...

  • 简易的javaFile类

    创建File对象: File的常用方法:

  • js对象的创建

    一、创建对象的方法 阅读犀牛书(《javascript权威指南》),书中将js创建对象的方法分为四种,对象字面量、...

网友评论

      本文标题:JavaScript创建对象的常用方法

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