1

例如

var contents = 'some text';

function fileSave(path){
// I'll handle saving the file, but I need the file contents
}

contents.fileSave('index.html');

因此,当函数对内容变量很有趣时,函数可以访问该变量。就像 replace() 在 JavaScript 中的工作方式一样。

前任。

str.replace();

但在这种情况下

contents.fileSave();

该变量是可互换的,该函数也适用于任何变量。

对不起,新手。。

4

4 回答 4

2

这可能是一种更好的方法,无需修改String.prototype

function fileEditor(path) {
    this.save = function(data) {
       // do something with path & data
    }
}

用法是,

var someFile = new fileEditor("index.html");
someFile.save("some text");
于 2012-12-01T22:31:40.587 回答
1

如果要为所有字符串添加方法,请将其添加到String.prototype.

String.prototype.fileSave = function(path) {
    var str = this + "";
    // work with the string
    console.log(str, path);
};

请注意您的环境。扩展本机原型可能会与其他代码发生冲突。您需要自己决定这是否会成为问题。

var contents = 'some text';

contents.fileSave('index.html'); // some text index.html
于 2012-12-01T22:28:52.957 回答
0

此代码会将函数 newMethod 附加到所有 String 实例,您也可以对其他类型执行此操作。

newMethod = function (signature) {...}
String.prototype.newMethod = newMethod
'a'.newMethod()

正如其他人所指出的,这可能不是最好的方法,但我仍然认为了解 javascript 如何工作对您来说可能很有趣(好吧,至少要开始使用 javascript 中的原型)。

于 2012-12-01T22:35:06.137 回答
0

切勿编辑不属于您的对象的原型!解决方案 1:使用构造函数,创建一个新对象,因为丢失的源写道解决方案 2:通过对象字面量声明一个对象:

var content={
    text:"loremipsum",
    save:function(){ // do work here }
}

并通过 content.save() 你保存。

于 2012-12-01T22:56:36.750 回答