//-----------------------------------------
function func() {
this.a = 'func';
}
func.prototype.method = function() {
return this.a;
}
var newfunc = new func();
//等同于[效果一样]
var newfunc2 = Object.create(Object.prototype/*Function.prototype||function(){}*/, {
a: {value:'func', writable:true},
method: {value: function() {return this.a;} }
});
但是 newfunc 与 newfunc2 在创建它们的对象的函数引用是不一样的.
newfunc 为 function func() {...},newfunc2 为 function Function { Native }
复制代码 代码如下:
Object.create(proto[, propertiesField]):
proto 说明,该值为必须,可以为 null, 如果没设定,将会抛出异常;
proto 为非 null, 即为已 实例化的值,即已经 new 过的值;javaScript 中的 对象大多有 constructor 属性,这个属性说明 此对象是通过哪个函数实例化后的对象;
propertiesField 为可选项,设定新创建对象可能需要的成员属性或方法;
您可能感兴趣的文章: