-
call()用于传递参数 //call 方法可以用来代替另一个对象调用一个方法,本案例中call(o)代替 toString,因为toString . call(o)
slice(8,-1)截取,从第8个字符开始到最后一个字符,其余的去掉
查看全部 -
属性标签图
查看全部 -
随意(0.0→1.0)的double类型数:Math.random()
重复知识点: set:function(level)的level是参数,可以自我设置名字
查看全部 -
原型链可以使子类继承父类的方法、属性
子类无法直接修改父类属性、方法。创建一个父类包含的属性,它会直接在当前子类创建一个新的属性,即使属性名相同,父类的属性也不会因此改变。此时每次用该属性,都是当前子类的属性。若想再次用父类的属性,用 delete obj.属性名; 删除子类中的属性,就可以用父类中的属性了。
‘属性名’in obj; 该语句会返回一个bool值,它会判断该属性是否在整条原型链上
obj.hasOwnProperty('属性名'); 该语句会返回bool值,它会判断该属性是否在当前对象上,不会在原型链上查找
var obj = Object.create({ 属性名 : 值 }); 创建一个对象,和他的原型,也就是说创建了一个添加了属性的父类,和一个继承了它的子类。
查看全部 -
用于显示对象的所有属性的标签:Object.getOwnPropertyDescriptor(判断对象,查找的属性名)
添加属性 :Object.defineProperty(添加属性的对象,‘属性名字’,‘具体的值’)
多属性定义:Object.defineProperties(对象,{属性1:{值1,值2},属性2:{值1,值2},属性3:{值1,值2} ,...})
查找对象所有属性:Object.keys(对象);
重复知识点:configurable,是否可修改
查看全部 -
我来测试一次啊这个呀呀呀查看全部
-
修改writable和configurable:true实现当前对象可以赋值
查看全部 -
为什么第二个obj.z还是1:?
实际上obj对象上没有z的属性并且向上查找时发现有get或者set的方法,当我们尝试去赋值时是会走原型链上的get、set方法,而不会再去通过给当前对象添加新属性的方式去处理。因此obj.z=10的赋值在这里是没有实现到的。
查看全部 -
Object.defineProperty()
方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性, 并返回这个对象。查看全部 -
isNaN是判断是否是非数字值
查看全部 -
$age是一种特殊的key,是不想暴露age的value
查看全部 -
man.age触发了set的方法,实现了赋值,但是这里并没有影响到get的方法所以第二次的console.log(man.age)出现的结果还是原来的值
set age(val)中的val是用于接收值的
查看全部 -
typeof,返回字符串,除function之外,其他封装类型均返回object查看全部
-
if(obj.hasOwnProperty(key))是用来过滤原型链上的属性,所以只保留下了a
查看全部 -
cat.legs *=2 是cat.legs * 2的意思
查看全部
举报