我很高兴在javascript中学习原型并发现很多文章,但是我无法理解为什么我无法在javascript中使用Object文字中的原型。众所周知,一切都是从Object继承的,所以在这种情况下
rpm -i --nodeps
如果我能够在函数中使用原型,为什么我不能在对象文字中使用原型,例如下面的例子
--nodeps
我已经完成了所有这个问题,但它真的没有回答为什么不能在javascript中的对象文字中使用原型的原因。以下是一些参考资料
答案 0 :(得分:3)
首先,.prototype
属性属于function对象。您无法从普通对象实例访问它。基本上,构造实例的内部.prototype
时将使用与构造函数关联的[[prototype]]
属性。这里有一个实例,如果你想将函数添加到它的原型链中,那么你必须通过
var obj = { firstname: 'foo', lastname:'bar' };
var pro = Object.getPrototypeOf(obj);
pro.getMethod = function () {
console.log('this is a function');
};
正如@bergi指出的那样,如果我们遵循上述方法,就有可能将getMethod
添加到所有实例中。但为了避免你可以选择做,
var obj = { firstname: 'foo', lastname:'bar' };
Object.setPrototypeOf(obj, Object.create({getMethod : function(){
console.log("Hello");
}}));
console.log(obj.getMethod()); //"Hello"