草庐IT

Null-Object

全部标签

javascript - Object.assign() 的糟糕用例 - 简单示例

我正在阅读MDNdocs在Object.assign()上遇到一个我不明白的短语:TheObject.assign()methodonlycopiesenumerableandownpropertiesfromasourceobjecttoatargetobject.Ituses[[Get]]onthesourceand[[Set]]onthetarget,soitwillinvokegettersandsetters.Thereforeitassignspropertiesversusjustcopyingordefiningnewproperties.Thismaymakeitun

设置原型(prototype)时Javascript继承: calling Object.创建

我正在学习面向对象的Javascript的某些方面。我遇到了这个片段varPerson=function(firstName,lastName){this.lastName=lastName;this.firstName=firstName;};Object.defineProperties(Person.prototype,{sayHi:{value:function(){return"Himynameis"+this.firstName;}},fullName:{get:function(){returnthis.firstName+""+this.lastName;}}});va

javascript - Object.create(null) 的用例?

如果您使用varobj={};创建一个常规的javascript对象,它将具有对象原型(prototype)。使用varobj=newMyClass();创建的对象也是如此在引入Object.create之前,没有办法解决这个问题。然而,现在可以使用varobj=Object.create(null);创建一个没有原型(prototype)的对象(相应的null作为其原型(prototype))。为什么这很重要?它带来了哪些优势?有任何现实世界的用例吗? 最佳答案 它是一个完全空的对象(没有从任何.prototype继承,包括Obj

javascript - TinyMCE -> 无法读取 null 的属性 'setAttribute'

所以我正在制作一个需要HTML输入框的MVC站点。我有一个从ajax对话框窗口加载的文本区域。我知道TinyMCE需要我在隐藏对话框时删除控件,这很好。但是我根本无法加载编辑器。我在jquery模块中使用4.1.9(2015-03-10)版。即tinymce.jquery.js和jquery.tinymce.min.js一旦对话窗口打开,我就调用它;$("textarea").tinymce({//Generaloptionsmode:"textareas",theme:"modern",//Themeoptionsmenubar:false,toolbar:"bold,italic,

javascript - 为什么 `typeof this` 返回 "object"?

varf=function(o){returnthis+":"+o+"::"+(typeofthis)+":"+(typeofo)};f.call("2","2");//"2:2::object:string"varf=function(o){returnthis+":"+(typeofthis)+":"+(typeofo);};varx=[1,/foo/,"bar",function(){},true,[],{}];for(vari=0;i我在Chrome、Firefox和Safari中看到相同的结果,所以我假设它符合thespec,但为什么?这在规范中的何处定义?为什么不是函数?

javascript - IE8上 "typeerror object doesn' t支持这个属性或方法的一般解决方案是什么?

我看到了几个关于这个问题的具体问题-在IE8中获取typeerrorobjectdoesn'tsupportthispropertyormethod,每个问题都有其具体的答案。假设我有一个包含大量代码的大型网站......我不知道是什么特定片段导致了这个错误。有没有通用的调试方法?我试过使用IE开发人员工具,它不会因错误而中断。这是由不正确的javascript语法引起的吗?我应该尝试像jslint这样的东西吗?识别和处理此问题的正确、通用方法是什么? 最佳答案 好吧,所以我转向了古老的解决方案并开始从我的项目中删除大量代码,直到问

javascript - react : Where To Extend Object Prototype

我使用create-react-app创建了一个纯React应用程序.我想扩展String类并在一个或多个组件中使用它。例如:String.prototype.someFunction=function(){//somecode}(您可能想查看thisquestion以了解有关扩展对象原型(prototype)的更多信息。)是的,我可以在组件旁边定义它并在其中使用它。但是最好和最干净的方法是什么?我应该把它写成classmethod或在componentDidMount内或者是其他东西?编辑:在React(或JavaScript)中扩展对象原型(prototype)甚至“可以”吗?

javascript - react : Cannot set property 'lastEffect' of null

我在生产中遇到错误。看起来它与uglisifyWebpack插件有关我找不到解决方案来解决它。网络包配置:constUglifyJSPlugin=require("uglifyjs-webpack-plugin");module.exports={mode:"production",entry:"./index.tsx",resolve:{extensions:[".js",".tsx"]},module:{rules:[{test:/\.tsx?$/,use:{loader:"ts-loader",options:{transpileOnly:true}}}]},optimizati

Javascript window.open 在 Win7 x64 上的 32 位 IE8 中返回 null

我已经阅读了有关此主题的相关问题,但尚未找到解决此问题的方法。我有一个简单的javascript函数,它在单击链接时调用window.open:varnewwindow;functionpop(url){newwindow=window.open(url,'','height=500,width=532');if(window.focus){newwindow.focus();}}这在Chrome、Firefox上工作正常,甚至在64位IE8上工作。但是,当我在32位IE8上尝试这个时,我得到一个错误,提示'newwindow'为空或不是对象.关于为什么这只会发生在32位IE8中的任何

javascript - 为什么是 Object.defineProperty() 而不是 this.defineProperty() (对于对象)?

我正在做一个JavaScript项目,只是想知道为什么对象实例不继承defineProperty()和其他方法,而不必调用父类(superclass)(superobject?)对象方法。我看过MDNdocs,并且实际上存在“非标准”属性方法。但那些已被弃用。为什么要移动到Object方法?在我看来,instance.defineProperty(...)比Object.defineProperty(instance,...)更好。我也会对其他一些对象方法说同样的话。 最佳答案 这是为了避免冲突——一般来说,对象不具有您期望的属性的