(function () {
function User() {
//some properties
}
//private fn 1
User.prototype._aPrivateFn = function () {
//private function defined just like a public function,
//for convetion underscore character is added
}
//private function type 2
//a
我已经在网上搜索过了,但是我不能理解这个问题的答案。许多人对同一问题有不同的答案。我有点困惑。
为什么更喜欢原型继承而不是闭包,为什么它比闭包消耗更少的内存?
我在下面写了两个例子,这样你就对我所问的问题有了基本的了解。
var foo = function () {
this.bar = function () {
// do something
};
};
另一个是:
var foo = function () { };
foo.prototype.bar = function () {
// do something
};
Javascript的一个强大特性是如何使用闭包和高阶函数隐藏私有数据:
function outerFunction(closureArgument) {
var closureVariable = something;
return function innerFunction() {
// do something with the closed variables
}
}
但是,这意味着每次调用outerFunction时,都会声明并返回一个新的innerFunction,这意味着outerFunction(arg) !== outerFunct
在我最近的javascript程序中(它主要是为了好玩和证明概念,而不是其他任何东西),我有很多不同类型的对象,每种类型我都有相当数量的“实例”。所以我想我应该使用这些类,但是由于它们非常简单,我可以直接构造它们,而不是使用类.
我的意思是:
//I'm making a "car" object that has the properties model, miles, value and color
//using a class like:
function car (model, miles, value, color) { .... }
//so I'
我已经熟悉了模块模式,在这种模式中,我们定义了一个具有私有状态的模块,带有funcitons闭包和一组公开的公共方法。然而,这似乎更接近于单例而不是对象。
但是,如果我想要一个更面向对象的模式,我是否可以使用与模块模式相同的结构,但不立即执行,如下所示:
function MyPseudoClass(constructorArg0, constructorArg1... ) {
var privateVar = "private!!";
var privateComplexVar = constructorArg0;
var privateComple
我对Javascript很陌生,我只想确保我理解它是如何处理this关键字的,因为.嗯,看起来很乱。我已经在StackOverflow上查看了类似的问题,并希望确保我没有提出错误的想法。
因此,我定义了这样一个类,并希望处理构造函数中接收到的每一个点。
function Curve(ptList) {
this.pts = [];
if(ptList.length > 2) {
// I want to call "addPoint" for every item in ptList right here
}
}
Curve.prototype.a
我正在尝试实现一种在JavaScript中实现继承的方法。首先,我定义基类,如下所示:
function Person(name){
name = name + "!"; //I want to reuse this code for initialization
this.getName = function(){
return name;
};
this.setName = function(_name){
name = _name;
};
};
然后我定义了子类。如果我需要一种方法来调用基类构造函
我的环境:
java version "1.6.0_38"
Grails 2.1.1
grails create-app test
cd test<br>
grails create-controller com.test.Test
在中没有特殊的配置。
com.test.TestController
package com.test
class TestController {
def getA(){
def ret = []
println "in getA"
render ret
我一直想知道JavaScript的原型特性,以及它的好处,下面是下面的列表:
1)继承
cat.prototype = animal
2)内存效率
a.prototype.b = function() {}
var a1 = new a();
var a2 = new a();
则a1.b和a2.b本质上是相同的对象,其中如下:
var a = function() {
this.b = function() {};
}
var a1 = new a();
var a2 = new a();
a1.b和a2.b是不同的函数对象,占用更多的内存。
这可以在Javascript中完成吗?我正在将一个java wiki页面转换为javascript。我很确定应该使用var而不是int,对吧?
class Sample extends Object {
int ivar1;
int ivar2;
Sample(int i, int j) {
ivar1 = i;
ivar2 = j;
}
int emptyMethod() {}
...
for (int i = 0; i < maxLoops; i++) {
...
}
}