2018年4月3日 天气晴朗
复习昨天学习:1、什么是面向对象,面向对象该怎么写?(首先要写一个构造函数,然后添加属性,添加方法)
function 函数名(){//函数名首字母大写
this.属性
}
函数名.prototype.方法名 = function() {} //要使用这个函数,则可以这样 var XX = new 函数名()
看我们JS中的系统对象,比如数组Array()、日期Date(),可以发现这个系统对象也有很多类似的方法,其实在JS源码,系统对象也是基于原型上的;(尽量不要去修改或者添加系统对象中的原型属性和方法)
比如
var arr = [1, 2, 3];
Array.prototype.push = function(arguments) {}//覆盖了源码中的push,让源码中的push方法不起作用了
arr.push(4, 5,6);//这样就不能把4,5,6添加到arr后面了
push方法的源码应该是这样的:
Array.prototype.push = function() {
for(var i = 0; i < arguments.length; i++) {
this[this.length] =arguments[i];
}
return this.length;//不要忘了push函数返回的是数组的长度
}