简介:JS中的对象是指一系列互相嵌套的健值对,在web开发中大多数空间都是以对象或数组的方式来提供给开发人员。那如何创建一个自定义的对象并且给对象添加属性和方法呢?
JS中的对象是指一系列互相嵌套的健值对,在web开发中大多数空间都是以对象或数组的方式来提供给开发人员。那如何创建一个自定义的对象并且给对象添加属性和方法呢?
1.通过Object实例创建自定义对象
//创建Object实例
var person = new Object();
//给对象添加属性并设置属性值
person.name = "rose";
//给对象添加方法
person.sayName = function () {
console.log(this.name);
};
//调用自定义的对象方法
person.sayName();
//调用自定义的对象属性
console.log(person.name);
2.通过对象字面量创建自定义对象
var person = {
name: "rose",
sayName: function () {
console.log(this.name);
}
};
//调用对象方法
person.sayName();
上面两种方式是创建对象的两种基本方式,他们的原型就是 Object 。这两种方式有点就是简单快捷。
缺点:使用同一个接口创建很多对象,会产生大量的重复代码。比如我想再创建一个person1对象,我就得把上面的代码再重新写一遍,改变不同的属性值。
3.通过构造函数的方式创建自定义对象
构造函数方式的优点:以构造函数创建的对象,在其原型上都会有一个 constructor 属性,这个属性指向构造函数 Person 而这个属性最初是用来标识数据类型的。
//自定义构造函数,在函数中添加属性及方法
function Person(name) {
this.name = name;
this.sayName = function () {
console.log(this.name);
};
}
//实例化对象
var p = new person("测试构造函数创建自定义对象");
//调用对象方法
p.sayName();
结合上面的自定义对象的创建方法,我们还可以优化一下,通过工厂方法创建一个自定义的对象。
function createPerson(name){
var person = new Object();
person.name = name;
person.sayName = function () {
console.log(this.name);
};
return person
}
//通过工厂方法获取对象
var p = createPerson('测试工厂方法');
//调用对象的方法
p.sayName();
注意:构造函数方法没有返回值,而工厂方法返回的是已创建的对象,调用方式已不一样。
总结
创建对象,有四种方式,其中第一种字面量创建对象的方式最常见和简单,直观,每一种方式创建对象都有自己的好处,比如动态的设置参数,前三种就比较合适
有遗漏或者不对的可以在我的公众号留言哦