用es5如何实现let和const
实现let:
(function(){ var a = 1; console.log(a) })(); console.log(a)
实现const:
var __const = function __const(data, value) { window.data = value // 把要定义的data挂载到window下,并赋值value Object.defineProperty(window, data, { // 利用Object.defineProperty的能力劫持当前对象,并修改其属性描述符 enumerable: false, configurable: false, get: function () { return value }, set: function (data) { if (data !== value) { // 当要对当前属性进行赋值时,则抛出错误! throw new TypeError('Assignment to constant variable.') } else { return value } } }) }
原创文章,作者:czhdawn,如若转载,请注明出处:https://www.czhdawn.cn/archives/4950