小编Pri*_*ERO的帖子

将.apply()与'new'运算符一起使用.这可能吗?

在JavaScript中,我想创建一个对象实例(通过new运算符),但是将任意数量的参数传递给构造函数.这可能吗?

我想做的是这样的事情(但下面的代码不起作用):

function Something(){
    // init stuff
}
function createSomething(){
    return new Something.apply(null, arguments);
}
var s = createSomething(a,b,c); // 's' is an instance of Something
Run Code Online (Sandbox Code Playgroud)

答案

从这里的回复中可以清楚地看出,没有内置的方式.apply()new运营商通话.然而,人们提出了一些非常有趣的解决方案.

我首选的解决方案是Matthew Crumley的这个解决方案(我已将其修改为通过该arguments属性):

var createSomething = (function() {
    function F(args) {
        return Something.apply(this, args);
    }
    F.prototype = Something.prototype;

    return function() {
        return new F(arguments);
    }
})();
Run Code Online (Sandbox Code Playgroud)

javascript oop inheritance constructor class

451
推荐指数
11
解决办法
7万
查看次数

在.Net 4.0中找不到JavaScriptSerializer

我似乎无法在Visual Studio 2010中找到JavaScriptSerializer对象和System.Web.Script.Serialization命名空间.我需要将某些内容序列化为JSON我应该使用什么?

是的,我已经System.Web.Extensions在项目中包含了(在System.Web.Extensions.dll中).这让我感到震惊的原因是什么?

  • 我知道在3.5中System.Web.Extensions被标记为过时

c# jsonserializer visual-studio

292
推荐指数
11
解决办法
29万
查看次数

ASP.NET身份中角色与声明的最佳实践

我对claimsin 的使用完全不熟悉,ASP.NETIdentity并希望了解使用中的最佳实践Roles and/or Claims.

经过这一切阅读后,我仍然有类似的问题......

问:我们不再使用角色吗?
问:如果是这样,为什么Roles仍然提供?
问:我们应该只使用索赔吗?
问:我们应该一起使用角色和声明吗?

我最初的想法是我们"应该"一起使用它们.我认为他们支持的Claims子类别Roles.

例如:
角色:会计
索赔:CanUpdateLedger,CanOnlyReadLedger,CanDeleteFromLedger

问:他们打算互相排斥吗?
问:或者最好只去索赔并"完全符合"你的要求吗?
问:那么这里的最佳做法是什么?

示例:一起使用角色和声明
当然,您必须为此编写自己的属性逻辑...

[Authorize(Roles="Accounting")]
[ClaimAuthorize(Permission="CanUpdateLedger")]
public ActionResult CreateAsset(Asset entity)
{
    // Do stuff here

    return View();
}
Run Code Online (Sandbox Code Playgroud)

示例:完全限定您的索赔

[ClaimAuthorize(Permission="Accounting.Ledger.CanUpdate")]
public ActionResult CreateAsset(Asset entity)
{
    // Do stuff here

    return View();
}
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc roles claims-based-identity

83
推荐指数
4
解决办法
3万
查看次数

传入undefined的目的是什么?

我注意到jQuery并将相关的主题插件作为参数jQuery.UI传递undefined给模块定义中使用的匿名函数,如下所示:

(function($, undefined) { ... })(jQuery);
Run Code Online (Sandbox Code Playgroud)

或者,我注意到jQuery和/或其他人推荐的其他插件不会将undefined作为参数传递.

这可能是一个愚蠢的问题,但......

它不应该总是可用吗?为什么传递它?这里还有某种其他目的或伎俩吗?

javascript jquery plugins

58
推荐指数
3
解决办法
7896
查看次数

Visual Studio 2017的Windows服务模板

对于Visual Studio 2017中的新项目,Windows服务模板不再默认显示....并且安装程序没有"搜索"功能.

所有这些AZURE的东西都很棒,但我仍然需要做正常的"本地"工作......而且我讨厌维护2个版本的Visual Studio.

这有什么想法?

在此输入图像描述

在此输入图像描述

visual-studio visual-studio-2017

31
推荐指数
4
解决办法
3万
查看次数

JavaScript Routing为您带来了什么?

我一直在寻找各种RIA,并注意到一些人使用或请求JavaScript路由.只是浏览它'JavaScript Routing'看起来像是一种遍历你网站的方式......但我可以使用一个简单的链接.这意味着我绝对不会得到它.

所以...

  • 路由为您提供常规锚点或链接不是什么?
  • 它仅适用于某些环境吗?(即ASP.NET或直接HTML)
  • 它是为了什么?
  • 它的存在有什么目的?

javascript asp.net url-routing

24
推荐指数
1
解决办法
6208
查看次数

如何使用约束将T限制为值类型?

我想限制N可以使用约束可以采用的类型.我希望将N限制为int或decimal.

public static Chart PopulateInto<T, N>(List<T> yAxis, List<N> xAxis) where N : int, decimal
{
    // Do stuff here
}
Run Code Online (Sandbox Code Playgroud)

任何帮助赞赏...

c# linq generics constraints

17
推荐指数
3
解决办法
1万
查看次数

什么是"泄漏"到全球范围?

不久之前,我提出了一个JavaScript设计模式(模块模式 - 见下文),我从John Resig的例子中得到了一个解决某人问题的一部分,我收到了以下评论:

"......这种模式有点过于设计而不是那么好.仍然渗透到全球范围.而你不打开自己的异步装载机.但它比ad-hoc编码更好!"

所以…

如果"泄漏"到全局范围意味着"您的对象被附加到浏览器窗口(对象)"......那么所有内容都已经被追加(全局):

这"泄漏"到全球范围:

window.jQuery
Run Code Online (Sandbox Code Playgroud)

...只需调用: window.jQuery并将其解析为函数();

这"泄漏"到全球范围:

function HelloWorld() { alert(‘Howdy’); }
Run Code Online (Sandbox Code Playgroud)

......打电话给window.HelloWorld()你:你会得到'你好'.

这"泄漏"到全球范围:

var myVariable = 10;
Run Code Online (Sandbox Code Playgroud)

......打电话给window.myVariable你:你会得到10分

如果评论者是正确的,那么以上所有"泄漏"到全球范围.所以,就个人而言,我没有看到一种不"泄漏"到全局范围内的方法,因为即使你的表单控件也存在(也是如此).

因此,这是我的问题......

  • 什么是"泄漏"到全球范围?
  • 为什么那么糟糕?
  • 你怎么避免它?
  • 当想要创建持久的自定义对象时,为什么模块模式(下面)不好?
  • 设计模式让你封装复杂的逻辑,封装突然变坏只是因为我们用JavaScript编写
  • 或者......这个评论者完全错了吗?

这是我上面提到的模块模式:

<script type="text/javascript">
    var myNamespace = (function($) {
        var publicInstances = {};

        // ***********************
        // myObject
        publicInstances.myObject = myObject;
        function myObject() {

            /// <summary>A pointer to this</summary>
            var self = this;

            this.someProperty = new String();

            this.initialize = function() { …
Run Code Online (Sandbox Code Playgroud)

javascript jquery design-patterns globals

17
推荐指数
2
解决办法
5697
查看次数

工厂应该设置模型属性吗?

作为整体SOLID编程工作的一部分,我在基础框架API中创建了工厂接口和抽象工厂.

人们已经开始重载工厂的Create方法.问题是人们正在使用模型属性重载Create方法(从而期望工厂填充它们).

在我看来,不应该由工厂进行财产设置.我错了吗?

public interface IFactory
{
    I Create<C, I>();
    I Create<C, I>(long id); //<--- I feel doing this is incorrect

    IFactoryTransformer Transformer { get; }
    IFactoryDataAccessor DataAccessor { get; }
    IFactoryValidator Validator { get; }
}
Run Code Online (Sandbox Code Playgroud)

更新 - 对于那些不熟悉SOLID原则的人,以下是其中一些原则:

单一责任原则
它规定每个对象应该只有一个责任,并且该责任应该由类完全封装

开放/封闭原则
这个原则的含义是当获得对需要添加到应用程序的功能的请求时,您应该能够在不修改旧类的情况下处理它,只需添加子类和新实现.

依赖倒置原则
它说你应该解耦你的软件模块.要实现这一点,您需要隔离依赖项.

总的来说:
我90%肯定我知道答案.但是,我想与已经使用SOLID的人进行一些很好的讨论.感谢您的宝贵意见.

更新 - 那么我认为SOLID工厂应该怎么做?

恕我直言SOLID工厂提供适当的对象实例......但这样做的方式隐藏了对象实例化的复杂性.例如,如果您有一个员工模型......您会要求工厂为您提供合适的模型.DataAccessorFactory将为您提供正确的数据访问对象,ValidatorFactory将为您提供正确的验证对象等.

例如:

var employee = Factory.Create<ExxonMobilEmployee, IEmployee>();
var dataAccessorLdap = Factory.DataAccessor.Create<LDAP, IEmployee>();
var dataAccessorSqlServer = Factory.DataAccessor.Create<SqlServer, IEmployee>();
var validator = Factory.Validator.Create<ExxonMobilEmployee, IEmployee>();
Run Code Online (Sandbox Code Playgroud)

再举一个例子,我们会......

var audit …
Run Code Online (Sandbox Code Playgroud)

c# asp.net solid-principles

16
推荐指数
1
解决办法
1509
查看次数

扩展方法如何在引擎盖下工作?

在我工作的承包商使用extension methods来实现CRUD,我们拥有知名的内部类.我说最好使用正常结果inheritance,extension methods原因如下.

  • 使用扩展方法会混淆,隐藏和混淆CRUD方法的来源.
  • 我假设extension methods大量使用reflection(速度较慢).

他的逻辑是,"它已编译,所以它很快." 也许我错了......但是因为它被编译并不意味着它不使用反射,也不意味着它比正常继承更快.

所以我的问题是:

  1. 如何extension methods在引擎盖下工作?
  2. 使用inheritanceextension methods使用WELL-KNOWN类是否更好?

c# asp.net extension-methods

13
推荐指数
2
解决办法
2012
查看次数