1.遵循基本原则:a.所有数据都是对象 b.要的到一个对象,不是实例化一个类,而是找到其原型并clone他 。 c.原型会记住对象。 d.如果对象无法相应某个请求,那么就会把这个请求委托给自己的原型。
2.函数的参数对象转换为数组:arguments => array Array.prototype.slice(arguments);arguments是一个类数组并不是正真意义的数组,无法调用数组的方法。
3.call(),apply(),bind():每个函数内部都包含两个非继承的函数,即:call(),apply(),两个函数用来改变this的指向。apply()参数为this的指向和函数参数,参数可以为一个数组或者不传。call()参数为this的指向和函数参数,参数为一个一个或则不穿,直接调用arguments。
4.当对象a需要调用对象b的方法或则属性时。可以利用对象的prototype属性。即:a.prototype = b;