原型:
-
每个构造函数都有一个prototype(原型)属性
-
是一个指针,指向一个对象
-
这个对象(原型对象)的所有属性和方法,都会被构造函数的实例继承(共享)。
-
这意味着,我们可以把那些不变的属性和方法,直接定义在prototype对象上。
代码:
//创建一个构造函数 Cookie
function Cookie() {
}
// setCookie 创建cookie
// key:键 val:值 time:时间(在这里设置的为几天后)
Cookie.prototype.setCookie = function (key, val, time) {
// 操作 存值
var date = new Date();
date.setDate(date.getDate() + time);
document.cookie = `${key}=${val};expires=${date}`;
}
//getCookie 获取cookie
// key
Cookie.prototype.getCookie = function (key) {
var arr = document.cookie.split('; ');
for (var item of arr) {
var newArry = item.split('=');
if (newArry[0] == key) {
return newArry[1];
}
}
}
// removeCookie 删除cookie
Cookie.prototype.removeCookie = function (key) {
//调用当前设置的cookie,将时间改为 -1
this.setCookie(key, '', -1);
}
// 清空cookie
Cookie.prototype.clearCookie = function () {
var clearArry = document.cookie.split('; ');
for (var item of clearArry) {
var newArry = item.split('=');
// this.setCookie(newArry[0], '', -1);
this.removeCookie(newArry[0]);
}
}
测试代码:
<script src="./原型对象封装cookie.js"></script>
<script>
var cookie = new Cookie();
cookie.setCookie('name', '张三', 1);
cookie.setCookie('age', 55, 1);
cookie.setCookie('address', '新加坡', 1);
console.log(cookie.getCookie('name'));
// cookie.removeCookie('age');
cookie.clearCookie();
</script>