2014-07-21 27 views
0

我正在研究asp.net web應用程序。我想在JavaScript中使用一個類。 在asps.cs文件中,我們可以很容易地使用這個像如何在Asp.Net的JavaScript中使用公共或內部類?

ABC obj = new ABC(); 
obj.name = "John"; 

我可以在JavaScript中使用類相同的方式? 如果是,那麼請告訴我如何在JavaScript代碼中使用公共或內部類相同的解決方案?

+0

ScriptSharp是一個庫,可讓您編寫c#代碼並將其編譯爲javascript。 http://scriptsharp.com/ – asawyer

回答

1

JavaScript並沒有真正的經典意義上的類。有several workarounds available。簡短概述:

  1. 使用功能
  2. 使用對象文本
  3. 辛格爾頓使用功能

注意,不會真的是這樣做的範圍修飾符(公共/內部的通道/私人等)。

您可能會看到TypeScriptCoffeeScript都編譯爲JavaScript,並支持類。 @asawyer指出了CoffeeScript的想法。

值得注意的是,ECMAScript 6標準將包含對類的支持,但是規範仍在進行中。

+0

除此之外,coffeescript還增加了Class支持。 http://coffeescript.org/#classes – asawyer

+0

謝謝你的回答親愛的。但這不是我想要實現的。 – user3853187

+0

@ user3853187我提供的鏈接中描述的方法看起來都是有效的解決方案。這不是你想要實現的? – mason

0

Javascript確實有原型支持,可以像C#世界中的那樣用作類。

// define a constructor of a class called "ABC" 
function ABC() { 
    this.name = null; 
} 

// create an instance of a class 
var obj = new ABC(); 

// check instance property value 
console.log(obj.name); // outputs "null" 

// set instance property value 
obj.name = "something"; 

// some more checks 
console.log(obj.name); // outputs "something" 
console.log(obj); // outputs whole object 

而關於公共和內部/私有類它們可以是模擬功能範圍內(如JavaScript僅具有功能範圍,其中C#有阻止範圍爲好)。

開發人員通常將他們的客戶端邏輯放入一個函數中,因此他們創建了一個私有範圍並避免了任何公共名稱衝突或內部功能的可見性。這些範圍可以在中公佈公共範圍內的任何要求。

任何廣泛使用的客戶端庫就是這種模式的一個很好的例子。 jQuery或甚至更好的AngularJS。它有很多內部業務邏輯,但只有少數公共可訪問的功能(主要是變量angular)。

相關問題