vue框架的底层核心语法
如下代码:
因为上边Object.defineProperty选定的obj,"a" 意为对obj对象中的a操作
writtable:true/false 为false时 "a"设置a不可被设置 打印obj.a时显示为value设置的字符
enumerable:true/false 意为是否可枚举(for in) a是可以被遍历的成员
configurable:true/false 意为是否可删掉/改变符号的属性 true表示可以
var obj={}
Object.defineProperty(obj,"a",{
value:"默认值",
writable:true,//false设置a不可设置
enumerable:false,//是否可枚举(遍历var in) a是可以被遍历成员
configurable:true, //为true可以删掉 可以改变符号属性
Object对属性的描述:
由Object.defineProperty变成了Object.create且只需要写上对象名字不需要写特定成员名
需要写一个名称将属性值括起来这里是life 可以将属性描述赋值给一个对象这里是f1 此对象的值是life:value
Object.create作用的对象会被创建进f1的原型
Object.getOwnPropertyDescriptor(f1,"life") 此命令获取life对Object的描述
var obj = {
name: "karen"
}
var f1 = Object.create(obj, {
life: {
value: 100, //值100
writable: false, //false设置a不可设置
enumerable: false, //是否可枚举(遍历var in) a是可以被遍历成员
configurable: true, //为true可以删掉 可以改变符号属性
}
}) //把obj创建进原型对象 life是对Object进行描述
console.log(f1);
var re=Object.getOwnPropertyDescriptor(f1,"life")//获得属性描述
console.log(re);
re=Object.preventExtensions(obj1)复制obj1的内容并赋值给re
re此后不能添加成员 不能操作
var obj1={hqyj:100,niuwa:200}
var re=Object.preventExtensions(obj1)//把obj1的成员添加给re
console.log(re,re==obj1);
re.a=100//re 不能被添加新成员 不能操作
console.log(re);
ar re=Object.seal(obj2)//给obj2所有属性设置不可删除