Jam*_*Jag 16 javascript oop object
有什么区别
var myView = function () {
//something goes here
};
Run Code Online (Sandbox Code Playgroud)
和
var myView = function () {
//something goes here
return {
a: x,
b: y
}();
Run Code Online (Sandbox Code Playgroud)
我认为第一个片段创建了一个"动态"类,所以你可以说
var anotherView = new myView();
Run Code Online (Sandbox Code Playgroud)
第二个片段类似于单个"动态"对象,但我不太确定.
And*_*yle 15
JavaScript使用原型继承,所以是没有阶级本身.一切都是一个对象; 只是某些对象有一个共同的父对象,当名称解析查找原型链时,会找到其方法/变量.
您的第一个代码段创建了一个名为myView
其函数类型的对象.您的第二个片段定义了一个匿名方法,该方法返回一个对象(具有两个属性,a
然后b
),然后立即调用此方法,将结果分配给myView
.所以在第二种情况下,myView
是一个具有两个自定义属性的对象.
它可以帮助你阅读道格拉斯克罗克福德在Javascript中对原型继承的描述,因为它听起来你对细节有点模糊.