1.如何构成原型链
原型链的终端是Object
2.原型链上属性的增删改查
删除,修改,增加要本人,子孙不能。
例子:
通过son想给他的父亲father改变属性fortune,son.fortune=200;结果,他父亲father.fortune没变依然是card1:“visa”。
例子:
可以调用修改:
son.fortune.card2=‘master’
son的父亲father的属性中fortune就有了card2:(存在疑问,为什么和上述例子一样,都是.fortune,这个就可以修改父亲的值,为什么不是椅子增加了一个属性,fortune,里面有个card2为master)
例子:
给自己添加了一个num,父亲的没管。
例子:
a.sayName(),sayName()里面的this,谁调用的这个方法,this就是指向谁
(1)
(2)
例子:
因为默认return undefined;
【注意】推荐第一种,对象,数组都用第一种。
3.Object.create(原型)
(1)
(2)
4.绝大多数对象的最终继承自Object.prototype
一个对象的原型只能是一个对象或者null
没有__proto__,人为加上:系统不会读
undefined null没有包装类,没有原型 所以没有toString()方法
方法的重写:
例子:
document.write();实际上也调用了toString()方法
例子:
js的小bug
向上取整,向下取整
前十六位后十六位都可以精准计算: