小编tim*_*mkg的帖子

为什么使用Object.prototype.hasOwnProperty.call(myObj,prop)而不是myObj.hasOwnProperty(prop)?

如果我理解正确,Javascript中的每个对象都继承自Object原型,这意味着Javascript中的每个对象都可以通过其原型链访问hasOwnProperty函数.

在阅读require.js的源代码时,我偶然发现了这个函数:

function hasProp(obj, prop) {
    return hasOwn.call(obj, prop);
}
Run Code Online (Sandbox Code Playgroud)

hasOwn是一个参考Object.prototype.hasOwnProperty.写这个函数是否有任何实际的区别

function hasProp(obj, prop) {
    return obj.hasOwnProperty(prop);
}
Run Code Online (Sandbox Code Playgroud)

既然我们在这,我们为什么要定义这个功能呢?这只是一个快捷方式和本地缓存属性访问(轻微)性能提升的问题,还是我错过了任何可能在没有此方法的对象上使用hasOwnProperty的情况?

javascript prototypal-inheritance hasownproperty requirejs

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

如何使用grunt linting单个javascript文件时解决依赖关系?

我想将我的应用程序逻辑分成多个Javascript文件,以保持理智和开发人员友好,存储在/ src文件夹中.在构建过程中,这些文件应该被打印并连接到/dist/app.js中.我正在使用grunt进行构建过程,因为它已经提供了方便的lint和concat任务.


    +
    |- grunt.js
    |- readme
    |-vendors
       |-backbone.js
    |- src
       |- core.js
       |- user.js
    |- dist
       |-app.js

我遇到了一个恼人的问题.我将backbone.js用于应用程序结构,我的大多数源文件都是通过扩展Backbone.Model来定义模型.当linting这些文件时,JSHint抱怨没有定义Backbone,这是正确的 - 骨干位于其自己的目录之外.按照正确的顺序包含所有必要的脚本是我假设在html中完成的.每个单独的源文件应该只知道自己.

我知道我可以通过将grunt.js中的lint的undef标志设置为false来抑制这些未定义的警告但是我想将它设置为true以便在我的应用程序中警告其他未定义的变量,因为它是一个常见的指针错误指针.有没有一种干净的方法来告诉grunt(或lint)在linting之前要包含哪些文件?我的构建过程或应用程序架构有问题吗?或者这只是我必须忍受的东西?

javascript backbone.js jshint gruntjs

8
推荐指数
1
解决办法
2743
查看次数

为什么要为命名变量分配函数声明?

编辑:它不是对命名变量的函数声明的赋值 - 检查接受的答案.保留标题,因为其他人可能会犯同样的错误.


在阅读Paul Irish的infinitescroll jquery插件代码时,我偶然发现了以下模式:

...
_create : function infscr_create (options, callback) { /* ... */ },
...
Run Code Online (Sandbox Code Playgroud)

这样做的好处是什么,而不是:

...
_create : function (options, callback) { /* ... */ },
...
Run Code Online (Sandbox Code Playgroud)

javascript function function-declaration

4
推荐指数
2
解决办法
92
查看次数

在INSERT期间省略"NOT NULL"值会将其默认为0.为什么?

我有以下表结构:

在此输入图像描述

badge_id并且interface_id主键.

当我尝试仅指定INSERT操作时badge_id,我预计它会失败,但interface_id 默认为0.

在此输入图像描述

我正在运行以下版本:

在此输入图像描述

有人可以解释为什么它默认为零?这不应该失败吗?提前致谢.

mysql sql

4
推荐指数
1
解决办法
181
查看次数