Javascript 如何创建函数的原型?
我试图通过玩控制台来理解对象和原型。当我尝试“圆圈”时,它给出了这个函数。但当我尝试Circle.prototype时,它给出了一个对象。Circle是如何获得原型属性的。它包含对象的构造函数和原型。有人能解释这个继承权吗Javascript 如何创建函数的原型?,javascript,prototype,Javascript,Prototype,我试图通过玩控制台来理解对象和原型。当我尝试“圆圈”时,它给出了这个函数。但当我尝试Circle.prototype时,它给出了一个对象。Circle是如何获得原型属性的。它包含对象的构造函数和原型。有人能解释这个继承权吗 要使用您的代码创建一个圆,您可以使用新建圆(10),或者如果您想稍后使用该圆圈,var circ=new circle(10)。这将创建一个新的圆形对象供您随意使用 Circle是一个函数,另一种变量或对象。您设置了Circle,现在当您键入Circle时,它将返回函数本身。
要使用您的代码创建一个圆,您可以使用
新建圆(10)代码>,或者如果您想稍后使用该圆圈,var circ=new circle(10)代码>。这将创建一个新的圆形对象供您随意使用
Circle
是一个函数,另一种变量或对象。您设置了Circle
,现在当您键入Circle
时,它将返回函数本身。不是新的圈子。每个函数都有一些属性,prototype
就是其中之一
prototype
对象是每个函数的一部分,用于处理类。你可以阅读它。要使用你的代码创建一个圆圈,你可以使用新建圆圈(10)代码>,或者如果您想稍后使用该圆圈,var circ=new circle(10)代码>。这将创建一个新的圆形对象供您随意使用
Circle
是一个函数,另一种变量或对象。您设置了Circle
,现在当您键入Circle
时,它将返回函数本身。不是新的圈子。每个函数都有一些属性,prototype
就是其中之一
prototype
对象是每个函数的一部分,用于处理类。您可以阅读它。当您创建新函数时,JS将创建具有属性名称、长度和原型的新函数对象。名称是函数名,长度是参数数,原型是对JS创建的新对象的引用,而构造函数属性是对第一个函数对象的引用。所以当你创建一个函数时,你实际上创建了两个新对象,函数对象和原型对象
有关更多信息,请参阅本30分钟讲座:
如果您只需要函数部分,请转至16:40分钟。当您创建新函数时,JS将创建具有属性名称、长度和原型的新函数对象。名称是函数名,长度是参数数,原型是对JS创建的新对象的引用,而构造函数属性是对第一个函数对象的引用。所以当你创建一个函数时,你实际上创建了两个新对象,函数对象和原型对象
有关更多信息,请参阅本30分钟讲座:
如果只需要函数部分,请转到16:40分钟。在Javascript中,函数是一个对象。每个对象都有一个“秘密”原型属性。
在您的例子中,圆圈的原型是函数的原型,因为圆圈是函数。
每个对象派生的根对象都是对象对象,因此如果您可以沿着原型链一直走到对象。
如果您打算使用Cirle作为构造函数并使用new调用它,这意味着您将创建其他对象,这些对象将成为Circle的实例,并且它们的原型将指向Circle.prototype。
关于原型如何工作的更详细解释,网上有很多很好的资源。
例如,您可以阅读以下内容:关于数据结构的章节:对象和数组
您可以通过执行Object.getPrototypeOf(Circle)来检查Circle的原型,以确认这将是函数原型。在Javascript中,函数是对象。每个对象都有一个“秘密”原型属性。
在您的例子中,圆圈的原型是函数的原型,因为圆圈是函数。
每个对象派生的根对象都是对象对象,因此如果您可以沿着原型链一直走到对象。
如果您打算使用Cirle作为构造函数并使用new调用它,这意味着您将创建其他对象,这些对象将成为Circle的实例,并且它们的原型将指向Circle.prototype。
关于原型如何工作的更详细解释,网上有很多很好的资源。
例如,您可以阅读以下内容:关于数据结构的章节:对象和数组
你可以通过doing Object.getPrototypeOf(Circle)来检查Circle的原型,以确认这将是函数原型。我认为当你读到有人写“每个对象都有原型属性”时,就会产生误解
Javascript中的函数是对象。与每个对象一样,函数也有一些属性和方法,其中一些是默认定义的:length属性、prototype属性、call()apply()和bind()方法等等。因此,默认情况下,函数具有原型属性
function Circle(radius) {
this.radius = radius;
}
var myobj = new myfunc()
您将看到调用此属性所得到的值是一个对象。好了,现在就说到函数了
现在,您可以使用任何函数作为构造函数,这样您就可以创建一个新对象,与new
关键字一起调用该函数
function myfunc(){
return "yes I'm a function";
}
//I said that function are objects having properties and methods
//this means you can call them, for example
myfunc.prototype
您将拥有一个新对象。默认情况下,此对象没有原型属性
function Circle(radius) {
this.radius = radius;
}
var myobj = new myfunc()
我们不能谈论对象的原型属性:函数有原型属性,对象没有
但是,它与一个原型对象关联的每个对象都继承了属性和方法。你想看看原型对象的值是多少吗?解决办法之一是
myobj.proptotype //=> unefined
您将看到定制对象的原型对象的值
现在,看看myobj.\uuuu proto\uuuu
的值和myfunc.prototype
的值:它们是相同的。这仅仅意味着构造函数的prototype属性(换句话说,fu的prototype属性