js之原型-原型链
什么是原型,它的作用是什么
什么是原型,他都作用是什么
- 每个函数都有prototype(原型)属性,这个属性是一个指针,指向一个对象,这个对象的用途是包含特定类型的所有实例共享的属性和方法,即这个原型对象是用来给实例共享属性和方法的。
而每个实例内部都有一个指向原型对象的指针 - 给我们构造函数实例化出来的对象设置公共的属性或者⽅法使⽤的
什么情况下使用原型
- ⽅法写在原型上,需要配置的属性是写在构造函数上
- 例如写个简单插件(步骤如下)
写⼀个⽴即执⾏函数
将构造函数写在⽴即执⾏函数⾥
将公共⽅法写在原型上
将构造函数挂载到window上
;( function() {
var Computer = function( opt) {}
Computer. prototype = {
plus: function( num1, num2) {
return num1 + num2
}
}
window. Computer = Computer
})()
var com = new Computer()
var sum = com. plus( 21, 23)
console. log( sum)
实例化对象能不能对原型上的属性进⾏改动
- 只有构造函数才能对原型上的属性进⾏改动
- 原型说实质的话就是构造函数的属性
什么是原型链
- js⾥万物皆对象,所以⼀直访问 __proto__属性就会产⽣⼀条链
条 - 链条的尽头是null
- 当js引擎查找对象的属性时,会先判断对象本身是否存在该属性
- 不存在的属性就会沿着原型链⽹上找