如何在Asp.Net中使用JavaScript中的公共或内部类

How to use public or internal class in JavaScript in Asp.Net?

本文关键字:内部类 JavaScript Asp Net      更新时间:2023-09-26

我正在做asp.net web应用程序。我想在javascript中使用类。在asp .cs文件中,我们可以很容易地使用

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

我可以在javascript中以同样的方式使用类吗?如果是,那么请告诉我如何在JavaScript代码中使用相同解决方案的公共或内部类?

JavaScript并没有真正意义上的类。有几种可用的解决方法。简短的概述:

  1. 使用函数
  2. 使用对象字面值
  3. 使用函数的单例

注意,实际上没有办法做作用域修饰符(public/internal/private等)。

你可以看看TypeScript和CoffeeScript都可以编译成JavaScript,并且支持类。@ aslawyer指出CoffeeScript的想法

值得注意的是,ECMAScript 6标准将包括对类的支持,但规范仍在进行中。

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是主要的一个)。