·1、首先在javascript中可以再程序运行的任何时候,给原型添加方法,是一种“运行时”机制。如
function Person (name,age) {
this.name = name;
this.age = age;
}
//创建一个person对象
var person = new Person("地瓜",18);
//添加sayHello方法
Person.prototype.sayHello = function () {
console.log("大家好,我叫:" + this.name + " 年龄:" + this.age);
}
<span style="white-space:pre"> </span>person.sayHello();
创建一个构造函数,利用构造函数创建一个person对象,给person对象添加方法,利用person对象调用sayHello方法可以得到结果
也就是说js支持在运行的时候添加方法,在添加方法之前创建对象依然可以使用创建的放法。
/2、可也以给内置的构造函数原型添加方法
var str = "地瓜萌萌哒";
String.prototype.reverse = function () {
var resultStr = "";
for (var i =this.length - 1; i >=0; i--) {
resultStr += this[i];
}
return resultStr;
}
console.log(str.reverse());
/3、同时也支持字符串
console.log("小雪转大雪".reverse());
4、也支持重新覆盖原来的放方法(注意:覆盖掉原来的方法则原方法无法使用,不要随意操作)
Array.prototype.indexOf = function (ele) {
console.log("地瓜!");
}
var arr = ["a","b","c"];
console.log(arr.indexOf("b"));
如上述代码显示的不是数组的下标,而是覆盖方法后的内容“”地瓜!“”