SEO (搜索引擎) 优化
Posted 每天都要进步一点点
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SEO (搜索引擎) 优化相关的知识,希望对你有一定的参考价值。
谷歌、QQ支持,360、搜狗不支持
使用proxy代理可以实现,对原先的类不进行处理,新建一个类,对此进行拦截处理,以实现低耦合
可以通过代理拦截的方法,将方法进行重写。
//--------------例1--------------
let obj = { webName: \'百度\', url: \'www.baidu.com\' } let p = new Proxy(obj,{ get: function(target,key){ return target[key] }, set: function(target,key,value){ target[key] = value } }); p.webName = \'baidu\'; console.log(p.webName);
//------------例2-------------
Proxy实际上重载(overload)了点运算符
var proxy = new Proxy(target,handler); class Register{ // 定义一个类 constructor(){ this.prefix = \'\'; this.name = \'\'; console.log(\'构造完成\'); } } let obj = new Register(); // 使用new方法新建一个类 let p = new Proxy(obj,{ // 定义一个代理,起到拦截作用 将使用new方法创建的类使用Proxy代理 get: function(target,key){ return target[key]; }, set: function(target,key,value){ if(key == \'id\' && value == 15){ target[\'prefix\'] = \'此人是逃犯\'; } target[key] = value; if(key == \'name\'){ value = target[key] + \',\' + target[\'prefix\']; } return Reflect.set(target,key,value); // 调用反射,当set全部结束,输出的时候会调动get方法 } }); p.id = 1; // . 会自动调用get和set方法 p.name = \'张三\'; // 相当于 调用set console.log(p.name); p.id = 15; p.name = \'李四\'; console.log(p.name);
实例:
//-----------------------------------
Proxy对象方法列表:
方法 描述
handler.apply() 拦截Proxy实例作为函数调用的操作
handler.construct() 拦截Proxy实例作为构造函数调用的操作
handler.defineProperty() 拦截Object.defineProperty操作
handler.deleteProperty() 拦截delete删除属性操作
handler.enumerate() 此方法将被废弃,不建议使用
handler.get() 拦截属性的读取操作
handler.getOwnPropertyDescriptor() 拦截Object.getOwnPropertyDescriptor()操作
handler.getPrototypeOf() 拦截获取原型对象操作
handler.has() 拦截属性检索操作
handler.isExtensible() 拦截Object.isExtensible()操作
handler.ownKeys() 拦截Object.getOwnPropertyNames()操作
handler.preventExtensions() 拦截Object.preventExtensions()操作
handler.set() 拦截属性赋值操作
handler.setPrototypeOf() 拦截Object.setPrototypeOf()操作
Proxy.revocable() 创建一个可取消的Proxy实例
以上是关于SEO (搜索引擎) 优化的主要内容,如果未能解决你的问题,请参考以下文章