原型创建
原型
-
原型对象prototype:每一个函数在声明的时候,都会创建一个原型对象prototype,用于存储公共的共享的属性和方法
-
原型属性__proto__:每一个实例对象在创建的时候,都会创建一个原型属性__proto__,这个原型属性指向prototype
//1.获取原型 console.dir(String); console.log(String.prototype); //原型对象 //console.log(String.prototype.indexOf()); //获取原型中的方法 //2.获取原型属性 var s1 = new String("12"); console.log(s1.__proto__); //原型属性 console.log(String.prototype == s1.__proto__); //true
原型创建对象
//1.声明一个构造函数
function Student(){};
//2.在原型中添加属性和方法
Student.prototype.name = "小二";
Student.prototype.age );
}
//3.实例化对象
var s1 = new Student();
console.log(s1);
console.log(s1.name);
//4.原型链:一种查找方式,先找实例本身,如果有就用自己的,如果没有就会取__proto__属性中查找
var s2= new Student();
console.log(s2);
console.log(s2.name);
优点:解决了内存浪费的问题
缺点:不能传参,创建出来的都一样