Javascript问题。
关于模式或表达式,可能是重复的问题。
您可以使用下面的三个来获取一个对象。 结果对象的工作原理相同。
当您使用大量 JavaScript Web 应用程序时,哪种模式是最好的?
按顺序,
1. 对象字面量大小写
2. 关闭案例
3.带有新案例的匿名函数
function car = {
name: 'Q5',
type:'SUV',
wheels:4,
door:2,
score: 0,
getWheel: function(){return this.wheels;},
getDoor: function(){return this.door;},
setScore: function(score){ this.score = score;}
}
var car = (function(){
var name = 'Q5',
type ='SUV',
wheels = 4,
door = 2,
score = 0;
return {
getWheel: function(){return wheels},
getDoor: function(){return door},
setScore: function(_score){ score = _score;}
}
})();
var car = new function(){
var name = 'Q5',
type ='SUV',
wheels = 4,
door = 2,
score = 0;
this.getWheel = function(){return wheels}
this.getDoor = function(){return door}
this.setScore = function(_score){ score = _score;}
}
最佳答案
没有“最好”的方法。 JavaScript 中有几种 OOP 模式,您提到的就是其中之一(也是一种流行的模式)。它本质上是一个原型(prototype)(或伪经典)模式,带有一个闭包来封装基于私有(private)类的静态变量。
还有其他模式(例如 Douglas Crockford 推荐的功能模式)。
我个人推荐伪经典模式(尽管哪种模式最好是争论的热点领域)。
如果您使用 JavaScript 进行 OOP,我强烈建议您考虑采用内置 OOP 的 JavaScript 库,例如 Dojo Toolkit或Closure Library 。其他库(例如 jQuery、MOOtools、Ext 等)都有 OOP 模块和/或插件。
或者
虽然 JavaScript 中没有类,但有构造函数和原型(prototype)。当您有多个相似的对象(例如用户列表中包含的用户)时,这些概念会派上用场。您的代码示例使用了这两个概念。使用像 myclass 这样的名称,很难说出您要建模的内容。以下是 User 构造函数及其原型(prototype)扩展的示例:
var User = function (name) {
this.name = name;
};
User.prototype.sayHello = function () {
return "Hello, my name is " + this.name;
};
关于javascript - 声明和获取 js 对象的最佳方法是什么? (图案),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9272945/