
获得徽章 0
- JavaScript对象的属性分为两类:数据属性和访问器属性。
数据属性具有四个特征:value(属性的值)、writable(决定属性能否被赋值)、enumerable(决定for...in循环能否枚举该属性)、configurable(决定该属性能否被删除或者改变特征值)。
访问器属性也具有四个特征:getter(在取属性值时被调用的函数)、setter(在设置属性值时被调用的函数)、enumerable(决定for...in循环能否枚举该属性)、configurable(决定该属性能否被删除或者改变特征值)。
数据属性主要关注属性的值,而访问器属性允许在读和写属性时执行代码,允许使用者在写和读属性时得到完全不同的值,实际上是一种函数的语法糖。JavaScript对象属性的动态性使得在运行时可以为对象添加属性,提供了高度的灵活性。可以使用Object.defineProperty来定义属性,改变属性的特征值,或者定义访问器属性。展开赞过评论1 - 报错【fatal: 'origin/remote-branch-name' is not a commit and a branch 'local-branch-name' cannot be created from it】。
原因可能是本地没有获取到远程仓库的分支列表。
用【git fetch --all】来解决。
如果只有一个远程仓库,如origin。不用【--all】也行。展开评论点赞 - ts,实例的静态部分和实例部分:
简言之,
静态部分:私有变量、私有方法,只能通过Class内部调用。
实例部分:通过经Class创建的实例调用,写在原型链上。通过创建的实例调用。等人赞过评论4 - 所以说,
Reflect.set(target, property, value)
和
target[property] = value
最终呈现的效果是一样的,只是调用方式(实现的过程)不一样。
另外Reflect会返回属性是否成功加上去。展开等人赞过评论4