Javascript 从ECMAScript规范中提取短语
我正在阅读ECMAScript语言规范,无法正确理解一个短语 这个短语是 由构造函数创建的每个对象都有一个对值的隐式引用(,称为对象的原型) 它的构造函数的“原型”属性 我无法理解括号中的短语Javascript 从ECMAScript规范中提取短语,javascript,Javascript,我正在阅读ECMAScript语言规范,无法正确理解一个短语 这个短语是 由构造函数创建的每个对象都有一个对值的隐式引用(,称为对象的原型) 它的构造函数的“原型”属性 我无法理解括号中的短语称为对象的原型 括号中的短语表示原型是隐式引用 我的问题是:原型是参考?隐式引用是原型吗?事实上我一直认为原型就是对象。但ECMA说,对构造函数“prototype”属性值的隐式引用是对象的prototype 我正确理解ECMAScript所说的内容,或者我的理解是错误的?我认为我们可以简单地将其改写为
称为对象的原型
括号中的短语表示原型是隐式引用
我的问题是:原型是参考?隐式引用是原型吗?事实上我一直认为原型就是对象。但ECMA说,对构造函数“prototype”属性值的隐式引用是对象的prototype
我正确理解ECMAScript所说的内容,或者我的理解是错误的?我认为我们可以简单地将其改写为
“由构造函数创建的每个对象都隐式引用其构造函数的“prototype”属性的值,称为对象的prototype。”我认为我们可以将其改写为
“由构造函数创建的每个对象都隐式引用其构造函数的“prototype”属性的值,称为对象的prototype。”javascript中的所有对象都从其prototype获取其属性和方法。原型词指“某物的第一个或初步版本”。因此,无论何时在javascript中创建任何可以创建其对象的东西(类或函数),其初始框架结构都可以称为原型。因此,假设您使用变量printStatement和方法print()定义了一个javascript类,该类的每个对象都肯定包含这两个内容。怎么用?根据您创建的原型
function Printer(statement) {
this.printStatement = statement;
this.print = function()
{
// Any send to printer logic
// this.printStatement.sendToPrinter();
}
}
上面的语句定义了打印机功能的原型
您可以将其称为Printer(“打印此行”).Print()代码>
现在,在文件中大约50行之后,您认为这个对象应该还有一个函数,ReadPrint语句。您可以通过对象本身访问原型并将其添加到内存中
Printer.prototype.ReadPrint = function(){
//whatever it does
}
从下一行开始,您可以将其称为Printer.ReadPrint()
因为在javascript中,prototype是一个开放的可用对象。您可以将自己的内容添加到其定义中,如
String.prototype.findAllIndexesOf = function(){
//whatever it does.
}
当您这样做时,.findAllIndexesOf()
将在以下行中的每个字符串对象上可用,并且可以以调用任何字符串对象上的split()、trim()
和其他方法的相同方式进行调用
请务必理解,通过这种方式添加函数和属性不会影响原始代码,因此,如果必须将函数添加到javascript中可用的不同对象的原型中,请将这些函数添加到一个文件中,并且必须在页面中包含此文件
请参阅下面的链接
并查看内置对象部分。它显示了可用的javascript对象,并显示了原型的用法。单击任何对象(如数组或字符串),您将了解prototype的功能 javascript中的所有对象都从其原型获取其属性和方法。原型词指“某物的第一个或初步版本”。因此,无论何时在javascript中创建任何可以创建其对象的东西(类或函数),其初始框架结构都可以称为原型。因此,假设您使用变量printStatement和方法print()定义了一个javascript类,该类的每个对象都肯定包含这两个内容。怎么用?根据您创建的原型
function Printer(statement) {
this.printStatement = statement;
this.print = function()
{
// Any send to printer logic
// this.printStatement.sendToPrinter();
}
}
上面的语句定义了打印机功能的原型
您可以将其称为Printer(“打印此行”).Print()代码>
现在,在文件中大约50行之后,您认为这个对象应该还有一个函数,ReadPrint语句。您可以通过对象本身访问原型并将其添加到内存中
Printer.prototype.ReadPrint = function(){
//whatever it does
}
从下一行开始,您可以将其称为Printer.ReadPrint()
因为在javascript中,prototype是一个开放的可用对象。您可以将自己的内容添加到其定义中,如
String.prototype.findAllIndexesOf = function(){
//whatever it does.
}
当您这样做时,.findAllIndexesOf()
将在以下行中的每个字符串对象上可用,并且可以以调用任何字符串对象上的split()、trim()
和其他方法的相同方式进行调用
请务必理解,通过这种方式添加函数和属性不会影响原始代码,因此,如果必须将函数添加到javascript中可用的不同对象的原型中,请将这些函数添加到一个文件中,并且必须在页面中包含此文件
请参阅下面的链接
并查看内置对象部分。它显示了可用的javascript对象,并显示了原型的用法。单击任何对象(如数组或字符串),您将了解prototype的功能 发布一个你正在阅读的链接,以便我们了解上下文。否则,在JavaScript中,所有对象都是强引用。但基本上它说所有对象都有[“prototype”]
/.prototype
属性。由函数A(){}
创建的对象将引用A
的prototype属性。这(对的prototype属性的引用)被称为“对象的prototype”。发布一个你正在阅读的链接,以便我们理解上下文。否则,在JavaScript中,所有对象都是强引用。但基本上它说所有对象都有[“prototype”]
/.prototype
属性。由函数A(){}
创建的对象将引用A
的prototype属性。(对的原型属性的引用)称为“对象的原型”。构造函数的“原型”属性是对象的原型