nop*_*ole 3 javascript oop prototype
我认为Javascript本机OOP系统被认为是无类别的,并且是基于对象的,而不是基于类的.但是我看到的每个例子总是以类似的构造函数开头
function Person(name) {
this.name = name;
}
Run Code Online (Sandbox Code Playgroud)
只是通过这种方式使用构造函数,这是不是已经意味着正在使用一个类?(一个叫做Person的类)
细节:
如果我们可以使用
a.__proto__ = b;
Run Code Online (Sandbox Code Playgroud)
在任何Javascript平台上,我认为它是无类别的.但我们做不到.如果我们想要这种行为,我们需要使用
function F() { }
F.prototype = b;
a = new F();
Run Code Online (Sandbox Code Playgroud)
因此,构造有被使用.因此,如果构造函数是Javascript中的基石,那意味着它应该是Person,Widget等的构造函数,而这些是类.
Javascript中的OOP与Java OOP略有不同.Javascript构造函数不引用类定义(因此它是无类别的).相反,构造函数指的是原型.Javascript中OOP的基础是Object对象(不是Object类),从中派生所有其他对象.
原型设计授予您继承权,以及使用属性和方法扩展现有对象的可能性.
我建议你这篇文章.
在你的例子中:
function Person(name) {
this.name = name;
}
Mike = new Person('Mike');
Run Code Online (Sandbox Code Playgroud)
Person()函数允许您Object
使用名为的新属性在对象上创建原型的新对象name
.好吧,Javascript oop中的这种函数称为构造函数.
归档时间: |
|
查看次数: |
1252 次 |
最近记录: |