1.用new来实现:
var func = function(){}
func.prototype={
name1: '1'
}
var f1 = function(){}
var p = new func
p.name2 = '2'
f1.prototype = p
var newfunc = new f1
console.log(newfunc.name1) //1
console.log(newfunc.name2) //2
"为使用此方法,必须对相关函数初始化。 在初始化过程中,构造函数可以存储每个对象必须生成的唯一信息。但是,这种唯一信息只生成一次,可能会带来潜在的问题。此外,构造函数的初始化,可能会将不需要的方法放在对象上。然而,如果你只在自己的代码中使用,或有通过注释等写明各段代码在做什么,这些在大体上都不是问题(事实上,通常是有益处的)"
以下方法也可实现,但是强烈不推荐:
2.还能通过Object.create()来代替 var p = new func
3.或者基于2 使用Object.setPrototypeOf来给2中的createobject创建一个原型
4.使用__proto__来强行设置原型
PS:getPrototypeOf 获取对象原型 例如:
Object.getPrototypeOf(inst) === newFunc.__proto__
Object.getPrototypeOf(inst) === f1.prototype