JS创建对象的几种方式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS创建对象的几种方式相关的知识,希望对你有一定的参考价值。

参考技术A 推荐有一下几种方式:
1.对象字面量创建对象
var
obj
=

a:1,b:2
;
注意:对象字面量是一个表达式,这种表达式每次运算都会创建并初始化一个新对象,并计算这个新对象的每个属性值。所以如果在循环体内使用对象字面量,每次循环时都会创建新对象。
2.通过new运算符创建对象
var
obj
=
new
object();
//创建空对象
var
ary
=
new
array();
//创建空的数组对象
注意:new运算符后面跟的是一个函数调用,这个函数被称为构造函数。js中原始类型都包含内置的构造函数,也可以自己定义构造函数。
3.通过立即执行函数创建对象
var
obj
=
(function()
return
x:1,y:2;());
注意:在立即执行函数内部一定要有return语句,return出的内容就是待创建的对象。
参考技术B 混合的构造函数,原型方式<br>function Parent() <br>this.name="脚本"; <br>this.age=4; <br>; <br>Parent.prototype.lev=function() <br>return this.name; <br>;; <br>var x =new Parent(); <br>alert(x.lev()); <br>动态原型方式<br>function Parent() <br>this.name="脚本"; <br>this.age=4; <br><br>if(typeof Parent._lev=="undefined") <br><br>Parent.prototype.lev=function() <br>return this.name; <br> <br>Parent._lev=true; <br> <br>; <br><br>var x =new Parent(); <br>alert(x.lev());

js创建对象的几种方式

一.使用构造函数创建对象

  1.使用系统构造函数创建对象

    举例:     

1 var obj = new Object();
2 obj.name = "小明";
3 obj.age = 28;
4 obj.eat = function(){
5 console.log("小明喜欢吃西瓜");
6 };
7 console.log(obj.name);
8 console.log(obj.age);
9 obj.eat();

技术图片 

 2.使用自定义构造函数创建对象

    a.使用不带参数的自定义构造函数创建对象

      举例:    

 1 function Person(){
 2     this.name = "小红";
 3     this.age = 28;
 4     this.eat = function(){
 5     console.log("小红喜欢吃西瓜");
 6 }
 7 var obj = new Person();
 8 console.log(obj.name);
 9 console.log(obj.age);
10 obj.eat();

  技术图片

   b.使用带参数的自定义构造函数创建对象

      举例:

      

function Person(name,age){
    this.name = name;
    his.age = age;
    this.eat = function(){
            console.log(this.name + "今年" + this.age + "岁了,喜欢吃西瓜");
        };
}
var obj = new Person("小光",18);
var obj2 = new Person("小青",22);
console.log(obj.name);
console.log(obj.age);
obj.eat();
console.log(obj2.name);
console.log(obj2.age);
bj2.eat();

技术图片

    c.定义构造函数时应遵循的命名规范

      定义构造函数时函数名的首字母要大写

    d.使用instanceof关键字来查看对象的类型

      举例:    

function Person(name,age){
    this.name = name;
    this.age = age;
    this.eat = function(){
            console.log(this.name + "今年" + this.age + "岁了,喜欢吃西瓜");
        };
}
function Dog(){
    this.eat = function(){
            onsole.log("狗喜欢吃骨头");
    };
}
var obj = new Person("小光",18);
var obj3 = new Dog();
console.log(obj instanceof Person);
console.log(obj instanceof Dog);
console.log(obj3 instanceof Dog);

技术图片

 

二.工厂模式创建对象

  举例: 

        <script>
            //使用工厂模式创建对象
            function createObj(name,age,sex){
                var obj = new Object();
                obj.name = name;
                obj.age = age;
                obj.sex = sex;
                obj.say = function(){
                    console.log("我是" + "this.sex" + "的");
                };
                return obj;
            }
            var obj = createObj("小黄",56,"男");
            var obj = createObj("小紫",52,"男");
            
        </script>

  说明:使用工厂模式创建对象其实就是讲创建对象的过程用函数封装起来,用于方便快捷的创建多个类似的对象,同时也存在问题,使用工厂模式创建的对象,无法判断哪个实例属于哪个对象,即使用instanceof关键字无意义

以上是关于JS创建对象的几种方式的主要内容,如果未能解决你的问题,请参考以下文章

js中面向对象(创建对象的几种方式)

第184天:js创建对象的几种方式总结

JS创建对象的几种方式整理

JS创建对象的几种方式详解

js创建对象的几种方式

js-创建对象的几种方式