在js高程书上说到:每个函数都有一个prototype属性,这个属性是一个指针,指向一个对象,而这个对象的用途是包含可以由特定类型的所有实例共享的属性和方法。
这里这句话我看不是很懂,假如这句话换一个说法该怎么说?
还有这里的特定类型指的是什么类型?
在js高程书上说到:每个函数都有一个prototype属性,这个属性是一个指针,指向一个对象,而这个对象的用途是包含可以由特定类型的所有实例共享的属性和方法。
这里这句话我看不是很懂,假如这句话换一个说法该怎么说?
还有这里的特定类型指的是什么类型?
他这个说法确实绕,你可以不用理解这个话。这个问题也并不是你的问题title那样问的。
My analysis...
每个函数都有一个prototype属性 而不需要理解指针的什么的 你也不用去想这句话 “这个属性是一个指针,指向一个对象”,你就理解 每个函数都有一个prototype属性 这个属性是一个对象
The like this
function A(){}
A.prototype.xxx = function(){}
因为他是一个对象 所以可以给prototype添加属性和方法。
so
当我们
var b = new A();
的时候 就可以用
b.xxx()
来做一些操作了。并且假如你再继续new A()的话 他们之间也是互补影响的。
(以上的言论 并不足以结束 为什么变量b可以调用到A的原型上的方法,这里默认你知道。)
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
这个
prototype
属性最大的作用的就是存放继承特征,访问构造器上的原型属性和方法,也就是这里的共享属性和方法。 这里可以跟js 高程上的用途对应一下。所以有一种继承方法,就是修改函数对象的prototype属性,实现继承,
再深入,就涉及到 原型链 和 Function.__proto__