相关疑难解决方法(0)

在JavaScript中使用'prototype'与'this'?

有什么区别

var A = function () {
    this.x = function () {
        //do something
    };
};
Run Code Online (Sandbox Code Playgroud)

var A = function () { };
A.prototype.x = function () {
    //do something
};
Run Code Online (Sandbox Code Playgroud)

javascript prototype this

765
推荐指数
14
解决办法
11万
查看次数

使用原型的优点,直接在构造函数中定义方法?

我想知道使用这些中的任何一个是否有任何优势,我应该走哪条路?

构造方法:

var Class = function () {

    this.calc = function (a, b) {
        return a + b;
    };

};
Run Code Online (Sandbox Code Playgroud)

原型方法:

var Class = function () {};

Class.prototype.calc = function (a, b) {
    return a + b;
};
Run Code Online (Sandbox Code Playgroud)

我不喜欢这样,使用原型,方法定义与类分开,我不知道是否有任何特定的原因我应该使用它而不是第一种方法.

此外,使用函数文字定义"类"是否有任何好处,而不仅仅是函数定义:

var Class = function () {};
Run Code Online (Sandbox Code Playgroud)

VS

function Class () {};
Run Code Online (Sandbox Code Playgroud)

谢谢!

javascript oop prototype

293
推荐指数
3
解决办法
8万
查看次数

在对象类声明中设置javascript原型函数

通常,我已经看到在类定义之外声明的原型函数,如下所示:

function Container(param) {
    this.member = param;
}
Container.prototype.stamp = function (string) {
    return this.member + string;
}

var container1 = new Container('A');
alert(container1.member);
alert(container1.stamp('X'));
Run Code Online (Sandbox Code Playgroud)

此代码生成两个值为"A"和"AX"的警报.

我想定义类定义的原型函数INSIDE.做这样的事情有什么不对吗?

function Container(param) {
    this.member = param;
    if (!Container.prototype.stamp) {
        Container.prototype.stamp = function() {
            return this.member + string;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试这样,以便我可以访问类中的私有变量.但是我发现如果我的原型函数引用了私有var,那么private var的值总是初始化函数初始化时使用的值,而不是对象实例中的值:

Container = function(param) {
    this.member = param;
    var privateVar = param;
    if (!Container.prototype.stamp) {
        Container.prototype.stamp = function(string) {
            return privateVar + this.member + string;
        }
    }
}
var container1 = new …
Run Code Online (Sandbox Code Playgroud)

javascript oop prototype

23
推荐指数
2
解决办法
2万
查看次数

标签 统计

javascript ×3

prototype ×3

oop ×2

this ×1