1

如何在 Javascript 中将值传递给超类构造函数。

在以下代码片段中

(function wrapper() {
var id = 0;

window.TestClass = TestClass;

function TestClass() {
    id++;
    this.name = 'name_' + id;
    function privateFunc() {
        console.log(name);
    }
    function publicFunc() {
        privateFunc();
    }

    this.publicFunc = publicFunc;
}

function TestString() {
    this.getName = function() {
        console.log("***" + this.name + "****************");
    }
}

TestClass.prototype = new TestString(); 
})();

如何将值传递给 TestString 构造函数?目前,超类方法使用 'this' 关键字的值。有没有办法直接将值传递给超类构造函数。另外,我想看一个扩展 String 的简单示例。这将揭开很多事情的神秘面纱。

4

1 回答 1

2

您可以在TestClass().

TestString.apply(this, arguments);

这将以新对象作为其上下文调用构造函数。

但是,请注意,建立[[Prototype]]TestClass.prototype = new TestString();将已经调用了一次构造函数。

js小提琴

我想看一个简单的扩展示例String

你可以增加它的prototype属性。

String.prototype.endsWidth = function(str) {
    return this.slice(-str.length) === str;
};
于 2013-08-16T10:41:14.440 回答