草庐IT

object-call

全部标签

object - 编写一个 javascript 库

我想写一个JS库,然后这样处理:varc1=Module.Class();c1.init();varc1=Module.Class();c2.init();当然,c1和c2不能共享相同的变量。我想我知道如何处理对象,它是:varModule={Class={init=function(){...}}}但问题是如果我这样写,我不能有多个Class实例。所以我试图通过功能实现相同的目标,但我认为我做的不对。(function(){varModule;window.Module=Module={};functionClass(i){//Howcan"this"refertoClassinst

javascript - 将函数调用保存到变量时为 "object is not a function"

我试图通过将函数缓存到变量来使我的代码更小。例如:functiontest(){vara=Array.prototype.slice,b=a.call(arguments);//DosomethingsetTimeout(function(){varc=a.call(arguments);//Dosomethingelse},200);}所以我可以不调用Array.prototype.slice.call(arguments),而是调用a.call(arguments);。我试图通过缓存Array.prototype.slice.call使它更小,但那不起作用。functiontest

javascript - chain call 和 apply 在一起是什么意思?

我在jsGarden中看到这段代码,我无法理解将call和apply链接在一起的意义。两者都将使用给定的上下文对象执行函数,为什么它可以链接起来?functionFoo(){}Foo.prototype.method=function(a,b,c){console.log(this,a,b,c);};//Createanunboundversionof"method"//Ittakestheparameters:this,arg1,arg2...argNFoo.method=function(){//Result:Foo.prototype.method.call(this,arg1,

javascript - $.proxy 和原生js 'call'/'apply' 有什么区别?

我相信它们都允许您控制“this”的值,但除此之外,我有点不清楚,Google/SO到目前为止没有太大帮助。任何澄清表示赞赏。我确实找到了这个,但我怀疑它是否说明了整个故事:"WhenIfirstlearnedaboutjQuery'sproxy()method,Ithoughtitwasalittlesilly;afterall,Javascriptalreadyhascall()andapply()methodsforchangingexecutioncontext.But,onceyourealizethatjQuery'sproxy()methodallowsyoutoeasi

javascript - 有什么理由在 JavaScript 中使用 Object.create() 或 new 吗?

到目前为止,我一直在JavaScript中使用new关键字。我一直在阅读有关Object.create的内容,我想知道我是否应该改用它。我不太明白的是我经常需要运行构造代码,所以我根本看不到Object.create将如何工作,因为它不会触发任何函数运行。谁能告诉我,在什么情况下我应该使用Object.create而不是new? 最佳答案 到目前为止,如果要创建一个对象,只能使用字面量:varobj={};或Object构造函数。varobj=Object();但是这些方法都不允许您指定所创建对象的原型(prototype)。这就是

javascript - Aurelia 绑定(bind) : property-getter called repeatedly

我目前正在学习和使用Aurelia,并且发生了一些奇怪的(也许是正常的)事情。当使用下面的代码时exportclassNavBar{getusername(){console.log('o_o')return'name'+Date.now()}}并且在模板${username}中,用户名始终在更新,每秒更新几次(当然,console.log也会记录多次)。解决方法是简单地使用函数而不是getter并在模板中调用${username()}。但这种行为正常吗?那么我应该有时使用setter/getter有时不使用setter/getter吗?谢谢! 最佳答案

javascript - ES5 中的 Object.defineProperty?

我看到了有关使枚举可配置的"new"Object.create的帖子。但是,它依赖于Object.defineProperty方法。我找不到此方法的跨浏览器实现。我们是否还在为旧的Object.create编写代码?我无法编写在IE6/7中无法运行的内容。 最佳答案 在ECMAScript3环境中,您无法通过ECMAScript5Object.create方法模拟一些事情。如您所见,属性参数会给您带来问题,因为在基于E3的实现中,没有办法更改属性属性。@Raynos提到的Object.defineProperty方法适用于IE8,但

JavaScript 对象文字方法 : Recursive call

是否可以从对象字面量中递归调用方法?例如:(function(){'usestrict';varabc=['A','B','C'],obj={f:function(){if(abc.length){abc.shift();f();//Recursivecall}}};obj.f();}());错误:'f'在定义之前被使用。谢谢。 最佳答案 您可以通过使用命名函数表达式:f:functionmyself(){if(abc.length){abc.shift();myself();//Recursivecall}}必读:http://k

javascript - Object.assign 和 object spread 的区别

这个问题在这里已经有了答案:Objectspreadvs.Object.assign(16个答案)关闭6年前。拥有varobj={a:1,b:2};有什么区别obj=Object.assign(obj,{c:3});和obj={...obj,c:3};

javascript - 初级 JavaScript : Working with JSON and Objects in JavaScript

我有一些像这个“产品”一样返回给浏览器的JSON:{"Title":"SchoolBag","Image":"/images/school-bag.jpg"}我希望此数据成为“产品”对象,因此我可以使用原型(prototype)方法,如返回产品的HTML图像表示的toHTMLImage():functionProduct(){}Product.prototype.toHTMLImage=function(){//Returnssomethinglike"alt=""/>}如何将我的JSON结果转换为Product对象,以便我可以使用toHTMLImage?