原型链知识点补充

`__proto__`是可修改的,__proto__就是一个基本的js对象,根据js无底线的语法规则,它是完全可以被修改或者重写的。

一、默认情况下:

原型链知识点补充

二、修改__proto__的例子。

修改了之后,arr不仅有内置的concatpush等功能,还多了一个addClass功能。

var arr = [1,2,3];
arr.__proto__.addClass = function () {
    console.log(123);
}
arr.push(4);
arr.addClass();   // 123

 三、完全重写 __proto__ 的例子

还是注意,重写__proto__之后,arr可就失去了concatpush等亲人了,只有一个addClass功能了。

var arr = [1,2,3];
arr.__proto__ = {
    addClass: function () {
        console.log(123);
    }
};
arr.addClass();   // 123

原型链知识点补充