2015-04-18 72 views
-1

有沒有辦法在流星中添加我自己的'原型功能'?流星Javascript原型

對於即

Element.prototype.hasClass = function (className) { 
return new RegExp(' ' + className + ' ').test(' ' + this.className + ' '); 
}; 

有沒有一種方法,我可以在客戶端文件夾中使用,並在客戶端文件夾在任何地方使用它?

+0

那麼你是在問創建原型還是關於變量範圍?或兩者? –

+0

如果你把它放在client/lib中,它應該可以在其他地方訪問。 – Gaelan

+0

@Kyll這個問題的原型。 –

回答

1

流星是一個Node.JS框架,它純粹是JavaScript。從中你可以做一切你可以做的事情,包括向現有的原型添加方法或完全修改它們(例如更改Array原型以在陣列上添加方法)。

但是,這種行爲是不鼓勵的。它在代碼和定義環境的方式之間創建了非常高的耦合度。它也可能導致圖書館中的強大不兼容和功能障礙。

如果您需要在包/插件/框架中更改原型(例如添加您自己的功能),請參閱其文檔(有些人可能會建議使用extend()來構建對象)。

不要更改默認的JS對象原型。

這裏有一個關於如何創建一個自定義的雛形,然後用一個對象使用一個小例子:

var userPrototype, user; 

userPrototype = { 
    sayHi : function() { 
    if(_.has(this, name)) { 
     return 'Hi, my name is ' + this.name + '!'; 
    } 
    return '... Who am I?'; 
    } 
}; 

user = Object.create(userPrototype); //user has userPrototype as prototype 

user.name = 'Will'; 
user.sayHi(); //Returns 'Hi, my name is Will!' 

作爲獎勵,這裏有一個關於free book JS和原型。

+0

謝謝。流星1.0時我開始網絡開發。我想嘗試創建自己的原型來練習JS。 –

+0

它超出了問題的範圍,但在那種情況下,我只能推薦一件關於JS的東西:閱讀,練習,閱讀更多,練習更多。不要忘記閱讀儘可能多的博客和書籍(我提供的鏈接是一個很棒的開始),JS是最容易被誤解的語言之一。 –

+0

但是當我想製作一個「定製」/我自己的原型時呢? –