草庐IT

strict-prototypes

全部标签

javascript "use strict"和尼克的查找全局函数

所以我看到了一个函数,坦率地说,它的简单性非常漂亮,因为它允许您在匿名函数中找到全局对象(这取决于当时的环境,可能不是window);但是,当您抛出javascripts的“使用严格”时;由于对关键字“this”的评估发生变化,模式崩溃了。有几种方法可以做到这一点?(function(){varwin=function(){return(function(){returnthis;}());};//winnowpointstotheglobalobjectnomatterwhereitiscalled.}());现在,如果在“usestrict”的上下文中调用这些,我们将失去所描述的功

javascript - 为什么在原型(prototype)中定义属性被认为是一种反模式

我经常看到这种模式来定义javascript对象functionPerson(name){this.name=name;}Person.prototype.describe=function(){return"Personcalled"+this.name;};并且在thisarticle它说直接向原型(prototype)对象添加属性被认为是一种反模式。来自“基于经典类”的语言,必须定义方法之外的属性听起来不太正确,而且在javascript中,方法应该只是一个具有函数值的属性(我在这里吗?)我想知道是否有人可以解释这一点,或者甚至建议一种更好的方法来处理这些情况

javascript - 带有 Object.create 和命名构造函数的原型(prototype) OO

我是从Python和Smalltalk的背景转到Javascript的,我很欣赏这门语言中Self和Lisp的传承。使用ECMAScript5,我想在没有new运算符的情况下尝试原型(prototype)OO。约束:创建类的可选new运算符instanceof的原型(prototype)链必须是正确的用于WebInspector调试支持的命名构造函数alloc().init()创建序列,类似于Objective-C和Python这是我为满足标准而进行的尝试:functionsubclass(Class,Base){"usestrict";functioncreate(self,args

javascript - 如何用自定义函数替换javascript原型(prototype)

//IamtryingtomakeacloneofString'sreplacefunction//andthenre-definethereplacefunction(withamindto//calltheoriginalfromthenewonewithsomemods)String.prototype.replaceOriginal=String.prototype.replaceString.prototype.replace={}下一行现已损坏-我该如何修复?"loremipsum".replaceOriginal(/(orem|um)/g,'')

javascript - 将 jQuery 与 'use strict' 结合使用的正确方法是什么?

如果我有类似下面的内容"usestrict";$(document).ready(function(){});我收到警告'$'isnotdefined 最佳答案 (function($){'usestrict';$(document).ready(function(){console.log('working!')})}(jQuery)) 关于javascript-将jQuery与'usestrict'结合使用的正确方法是什么?,我们在StackOverflow上找到一个类似的问题:

javascript - 常规推送和 Array.prototype.push.apply 之间有什么区别

我不太明白下面两行代码的区别。在我的代码中,带有“应用”的行按照我想要的方式工作,而带有常规推送的行则没有。那么当这两个都被执行时到底发生了什么://thisonedoesnotworkthewayiwantitto$scope.items.push(result.data.stuff)//thisoneworks!Array.prototype.push.apply($scope.items,result.data.stuff);编辑:抱歉造成混淆,我修复了它,以便它具有“推送”方法 最佳答案 新1.将数组推送到项目上。$scop

JavaScript 原型(prototype)函数没有覆盖原来的函数

当我接触原型(prototype)的概念时学习javascript。我成功地向cat类添加了新方法,但未能覆盖原始的talk方法。functioncat(name){this.name=name;this.talk=function(){alert(this.name+":I'magirl!")}}cat.prototype.talk=function(){alert(this.name+":I'madude!")}cat1=newcat("felix")cat1.talk()为什么这不提醒新文本? 最佳答案 ‘functionca

javascript - 将 Javascript getter/setter 复制到另一个原型(prototype)对象

//BaseclassvarBase=function(){this._value='base';};Base.prototype={constructor:Base,//ByfunctiongetValue:function(){returnthis._value;},//Bygettergetvalue(){returnthis._value;}};//SubclassextendsBasevarSub=function(){this._value='sub';};Sub.prototype={constructor:Sub};//PassovermethodsSub.protot

javascript - 函数的正确原型(prototype)链

以下程序的正确输出(按照ECMA标准表示正确)是什么?functionnl(x){document.write(x+"");}nl(Function.prototype);nl(Function.prototype.prototype);nl(Function.prototype.prototype==Object.prototype);nl(Function.prototype.prototype.prototype);Chrome和IE6一致的说法是:functionEmpty(){}nullforChrome/undefinedforIE6false然后崩溃。Mozilla输出:

JavaScript 原型(prototype)仅限于函数?

o.prototype={...}只有当o是一个函数时才有效。假设我有以下代码conf={a:2,b:4};conf.prototype={d:16}conf.a和conf.b正常并返回正确的值。但是conf.d没有返回16,而是未定义。是否有任何解决方案很糟糕,基于原型(prototype)的泛化也可以应用于这些类型的对象。 最佳答案 您混淆了可用于ConstructorFunctions的prototype属性和内部[[Prototype]]属性。所有对象都有这个内部[[Prototype]]属性,只有new当您使用构造函数调用