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创建对象的几种方式的主要内容,如果未能解决你的问题,请参考以下文章