var C = function(name) {this.name = name; return this;}; var obj1 = new C('Rebecca'); alterObjects(C, 'What\'s up'); obj1.greeting;
What's up
function alterObjects(constructor, greeting) { constructor.prototype.greeting = greeting }
分析题意:
将 constructor 的所有实例的 greeting 属性指向给定的 greeting 变量。
那就是说实例都共享同一个变量,共享我们可以很容易想到prototype,它的作用就是实现属性方法共享.
所以可以在原型上定义greeting变量,则所有实例都可以通过obj.greeting访问到它.
实现的原理还是原型链的知识点.
function alterObjects(constructor, greeting) {
constructor.prototype.greeting=greeting;
}