1.使用原型方式创建数组的shift方法和unshift方法
Array.prototype.shifts = function(){
for(var i=0;i<this.length-1;i++){
this[i] = this[i+1];
}
this.length = this.length-1;
}
var arr = [11,22,33];
arr.shifts();
console.log(arr);
Array.prototype.unshifts = function(user){
this.length = this.length+1;
for(var i=this.length-1;i>=0;i--){
this[i] = this[i-1];
}
this[0] = user;
}
var arr = [11,22,33];
arr.unshifts(44);
console.log(arr);
2.原型查找机制
1. 当访问一个对象的属性或方法时,首先查找这个对象自身有没有
2. 如果没有就查找它的原型(也就是 __proto__ 指向的prototype 原型对象 )
3. 如果还没有找到就查找原型对象的原型(Object的原型对象)
4. 依次类推一直找到Object为止( null )
5. __proto__ 对象原型的意义就在于为对象成员查找机制提供一个方向,或者说一条线路
3.原型的方式构造一个call()方法
Function.prototype.callNew = function(content,...sum){
console.log(!content);
if(!content|| context === null|| context === undefined){
context = window;
}
let fn = Symbol();
content[fn] = this;
return content[fn](...sum);
}