前言
首先出道面试上机题简化版(来自喜马拉雅Fm),侵删。
**** 你需要在这里完成People的构造函数 **** //从而会按照期望执行下面的代码 var man = new People("小明"); var women = new People("小红") console.log(man.name) // 期望为 小明 man.name = "小刚" // 期望为 warn:不允许通过赋值运算符 console.log(man.name) // 期望为 小明 console.log(women.name) // 期望为 小红 women.setName("小黄") console.log(women.name) // 期望为 小黄我的方案 Object.defineProperty
var People = function (name){ this._name = name; Object.defineProperty(this,"name",{ get:function(){ return this._name }, set:function(name){ console.warn("不允许通过赋值运算符") } }) this.setName = function(name){ this._name = name; } }Proxy
var createPeople = function(name){ var obj = new Object(); obj._name = name; obj.setName = function(name){ this._name = name; } return obj } var People = function (name){ return new Proxy(createPeople(name), { get: function (target, key, receiver) { if(key === "name"){ return target["_name"] } return target[key]; }, set:function(target,key,value,receiver){ if(key === "_name"){ target._name = value return } console.warn("不允许通过赋值运算符") } }); }Class
class People{ constructor(name){ this._name = name; } get name(){ return this._name; } set name(name){ console.warn("不允许通过赋值运算符") } setName(name){ this._name = name; } }小结
我把自己的代码放出来,抛砖引玉,也希望大家可以 review我的代码,指出不足之处和可优化之处。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/97844.html
摘要:前言最近在用封装纯数字的输入框,开发过程中发现不是坑,也有不少值得研究的地方。因此我们要继续补充下面两步,并且由于事件触发时值还没被修改,于是我们需要将值和当前输入值做组合来做预判,进一步扩大非法字符集。 前言 最近在用Polymer封装纯数字的输入框,开发过程中发现不是坑,也有不少值得研究的地方。本系列打算分4篇来叙述这段可歌可泣的踩坑经历: 《动手写个数字输入框1:input[...
摘要:前言最近在用封装纯数字的输入框,开发过程中发现不是坑,也有不少值得研究的地方。因此我们要继续补充下面两步,并且由于事件触发时值还没被修改,于是我们需要将值和当前输入值做组合来做预判,进一步扩大非法字符集。 前言 最近在用Polymer封装纯数字的输入框,开发过程中发现不是坑,也有不少值得研究的地方。本系列打算分4篇来叙述这段可歌可泣的踩坑经历: 《动手写个数字输入框1:input[...
摘要:前言最近在用封装纯数字的输入框,开发过程中发现不是坑,也有不少值得研究的地方。因此我们能做的是通过事件作事后补救措施在中拦截输入法中输入的和按键事件,然后自行出发事件执行补救措施。 前言 最近在用Polymer封装纯数字的输入框,开发过程中发现不是坑,也有不少值得研究的地方。本系列打算分4篇来叙述这段可歌可泣的踩坑经历: [《动手写个数字输入框1:input[type=number...
阅读 3343·2021-11-22 13:53
阅读 3343·2021-10-11 11:11
阅读 916·2019-08-30 14:12
阅读 1196·2019-08-29 17:16
阅读 621·2019-08-29 16:45
阅读 3323·2019-08-29 12:56
阅读 650·2019-08-28 17:55
阅读 2048·2019-08-26 13:24