function object (o) {
function F() {}
F.prototype = o;
return new F();
}
var person = {
name: "Nicholas",
friends: ["shelby","Count","Van"]
}
var person1 = object (person);
person1.name = "Gerg";
person1.friends.push("Job");
console.log(person1.name);
console.log(person1.friends);
var person2 = object(person);
console.log(person2.name);
console.log(person2.friends);




F prototype 和 o 的关系是怎样的?再补充一张图片
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
关于原型的回答,sf上挺多的了,譬如相似问题的那里面的好几个,你看一遍就差不多了。
解释一下代码吧:
object函数就是改变构造函数的prototype对象的,比如说你要继承person中的属性,那么就写一个空函数,把空函数的prototype对象修改成person。
然后new 这个空函数,产生实例,譬如说上面的person1,person1中如果定义了name属性,那么访问器访问的时候就返回person1中定义的name
如果没有实例中没有定义name就去产生这个实例的构造函数的prototype对象上找,person2就是为了说明这个意思。
上面的是通俗说法,省略了一些细节,你看几篇长文章就可以了解的更详细。
//补充你后来的问题
F.prototype 就是指向o的,再上面的例子中就是指向person的