是什么让 object.prototype 成为构造函数,如果他没有名字
What makes the object.prototype to the constructor function if he has no name?
我的以下代码是这样的:
var triangle = {a:1, b:2, c:3};
function constructorFunction() {
this.color = "red";
}
constructorFunction.prototype = triangle;
我知道 prototype 关键字在以下语法中扩展了类: Object.prototype.method = function() {}
但是这个例子是为了什么? constructorFunction.prototype
之后没有属性或方法名称,这里会发生什么?
在 constructorFunction.prototype 之后没有属性或方法名称
那不是真的。构造函数的prototype
是使用 triangle
对象设置的。prototype
有 3 个属性。
prototype
是一个对象。请考虑以下示例:
var obj = { 'baz': 'bar' };
obj = {
'foo': 'bash'
}
// obj => { 'foo': 'bash' }
在上面的代码片段中,obj
变量的值是使用对象文字重置的。
var obj = { 'baz': 'bar' };
obj.foo = 'bash';
// obj => { 'baz': 'bar', 'foo': 'bash' }
在上面的示例中,原始对象使用点表示法进行扩展。
我尝试控制台.log(constructorFunction.a);但它返回未定义。
这是因为您尚未创建实例。a
是构造函数的 prototype
对象的属性。
console.log(constructorFunction.prototype.a);
如果创建实例对象,则a
是该实例的属性。
var ins = new constructorFunction();
console.log(ins.a);
相关文章:
- ES6构造函数返回基类的实例
- 使用Google Visualization动态调用构造函数
- javascript中对象构造函数中的var属性与this.properties
- 理解typescript中的构造函数接口
- 为什么构造函数不是构造函数
- 如果在构造函数中有“返回”,则在 JavaScript 中的新运算符中做了什么
- 拦截对构造函数的调用
- 如果在构造函数内部为else,则Javascript是可选的
- Javascript:如何附加到构造函数的原型,如果该构造函数已经在另一个对象的原型上定义
- 如果构造函数返回对象,则不能使用原型
- 如果我使用_.bindAll(this),为什么我的Backbone.View.构造函数__super__未定义
- 如果构造函数返回new Func()会发生什么?
- 如果构造函数在另一个函数中,则新创建的对象调用构造函数undefined
- 如果超类构造函数有参数,如何初始化超类
- obj.如果在ExtJs类原型中定义了构造函数,则get函数失败
- 如果修改构造函数的原型对象,现有构造函数是否不受影响?
- 如果重新分配了原型和构造函数,如何获取实例名称
- 是否更改构造函数's属性的实例创建后会影响实例吗?如果是,那么如何
- 是什么让 object.prototype 成为构造函数,如果他没有名字
- 如果EventConstructor不是构造函数,我该如何创建事件?