這是一個例子。javascript函數結構
var x=5;
var y=x.multiplied(6); // return y=30;
如何在js上創建類似.multiplied()
函數的函數?
功能結構是這樣的
var1.doSomething(var2);
這是一個例子。javascript函數結構
var x=5;
var y=x.multiplied(6); // return y=30;
如何在js上創建類似.multiplied()
函數的函數?
功能結構是這樣的
var1.doSomething(var2);
function myInteger(setVal) { this.value = setVal; } myInteger.prototype.multiple(mult) { return this.value * mult; // Or // return new myInteger(this.value * mult); } var x = new myInteger(5) var y = x.multiple(6);
需要延長Number對象這樣的..
var x = Number(5);
Number.prototype.multiplied = function(a) {return this * a;};
如果你想創建FN像相乘,你需要擴展在以下情況下,您需要擴展Native類型的原型,例如
Number.prototype.multiplied = function(n){
return this*n;
}
var x=5; //x is a Number
var y=x.multiplied(6); // return this*6 => this is x => that is 5 => 5*6 = 30;
一般來說,如果你有var1.doSomething(var2);和VAR1是一個對象,你可以用這種方式
function myObject(name){
if(!(this instanceof myObject)){ // in the case you're missing 'new' when you declare a myObject instance
return new myObject(name);
}
this.name = name; //field
this.doSomething = function(param){ //method
alert('done '+param+' '+this.name);
}
}
var var1 = new myObject('peter');
var var2 = "string";
var1.doSomething(var2); //alerts "done string peter"
var var3 = myObject('jean'); //don't need 'new'
var var4 = "homework";
var3.doSomething(var4); //alerts "done homework jean"
VAR1也可以是一般的「圖書館」定義「方法」,你可以這樣定義它:
var var1 = {
doSomething : function(param){
alert('done ' + param);
}
}
//you don't need to instantiate a new object. You have a static library
var var2 = "mystring";
var1.doSomething(var2); //alerts "done mystring"
做我有指定像這樣的變量ar x = new myInteger(5)?我不能只指定var = 5;像另一個js函數?... – theHack 2011-02-16 09:33:49