设计模式(Design pattern)是一套被反复使用、思想成熟、经过分类和无数实战设计经验的总结的。使用设计模式是为了让系统代码可重用、可扩展、可解耦、更容易被人理解且能保证代码可靠性。设计模式使代码开发真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。只有夯实地基搭好结构,才能盖好坚壮的大楼。也是我们迈向高级开发人员必经的一步。
模式
解释
过程
写法
在面向对象编程中,新建的对象分配到内存后,有构造器函数初始化该对象。
过程:
1.创建对象并分配内存;
2.接收参数,通过构造器给对象赋值(属性和方法)。
// 1.创建对象(的三种方式)
// ①
var newObj = {};
console.log(newObj);
// ②
var newObj = Object.create(null);
console.log(newObj);
// ③
var newObj = new Object();
console.log(newObj);
// 注:使用 var 关键字声明的变量可以重复声明,后者会覆盖前者
// 2.四种赋值方式
// ①“点号”法
// 设置name属性和属性值 对象.key = value
newObj.name = "龙傲天";
// 取值
var name = newObj.name;
console.log(name);
// ② “方括号”法
// 赋值取值
newObj["age"] = 18;
var age = newObj["age"];
console.log(age);
// ③Object.defineProperty方式
// Object.defineProperty(对象,key,{ descriptor }) 在对象上添加新属性并赋值, 或修改对象已有属性
Object.defineProperty(newObj, "sex", {
value: "女",
writable: true, //value值可改
// enumerable: true,
// configurable: true,
});
newObj.sex = "男";
console.log(newObj.sex);
// 等价于
var defineProp = function (obj, key, value) {
let config = {};
config.value = value;
Object.defineProperty(obj, key, config);
};
// 调用
defineProp(newObj, "height", 175);
console.log(newObj.height);
// ④Object.defineProperties方式
Object.defineProperties(newObj, {
weight: {
value: 55,
writable: true,
},
eyesight: {
value: 5.0,
writable: true,
},
});
console.log(newObj.weight);
console.log(newObj["eyesight"]);
1.基础写法(对象的函数写在内部)
// 构造函数写法一
function Person(name, age, sex) {
this.name = name;
this.age = age;
this.sex = sex;
// 对象方法写在构造器内
this.toString = function () {
return (
`我是` +
this.name +
`,今年` +
this.age +
`岁了,是一名` +
this.sex +
`生.`
);
};
}
var kunpeng = new Person("鲲鹏", 18, "男");
console.log(kunpeng.toString());
2.使用"原型"的构造器(对象的函数写在prototype上, 可以被子类继承)√
// 构造函数写法二: 原型写法
function Person(name, age, sex) {
this.name = name;
this.age = age;
this.sex = sex;
}
// 对象属性写在构造器内,方法(函数)写在原型上
Person.prototype.toString = function () {
return (
`我是` +
this.name +
`,今年` +
this.age +
`岁了,是一名` +
this.sex +
`生.`
);
};
var fenghuang = new Person("凤凰", 18, "女");
console.log(fenghuang.toString());
介绍
过程
用法
# 、单例模式
单例模式
一个类只有一个实例,并提供一个全局访问点。
更新中。。。(2022年7月5日22:14:26)