js object 属性去掉最后属性

您的位置:&&JavaScript核心:Object属性和相关方法
Object构造函数创建一个对象,如果给定值是null或undefined将会创建并返回一个空对象,否则将返回一个与给定值对应类型的对象。
Object的属性
Object.length
值为1,没有太多的实用意义。
Object.prototype
Object.prototype属性表示对象Object的原型对象;可用于实现基于原型的继承与属性的共享。由于JavaScript没有子类对象,原型是一种常用的方法,用于为某些表现为对象的函数创建一个“基类”。
在JavaScript中,所有的对象都是基于Object;所有的对象都继承了Object.prototype的属性和方法,它们可以被覆盖(除了以null为原型的对象,如 Object.create(null))。对象的原型的改变会传播到所有对象上,除非这些属性和方法被其他对原型链更里层的改动所覆盖。
Object.prototype.constructor === Object // true
Object.constructor === Function
Function.prototype.constructor === Function
function objectPrototype(name)
this.name =
}//定义一个构造函数
objectPrototype.prototype.see =//为构造函数的原型增加属性
var objectInstance = new objectPrototype('dog');//实例化一个构造函数,得到一个实例化对象
objectInstance.constructer === objectPrototype.prototype. // true
var Person = function() {
this.canTalk =
this.greet = function() {
if (this.canTalk) {
console.log('Hi, I\'m ' + this.name);
this.prototypeFunction = function () {
console.log('prototype defined function run');
};//定义Person构造函数以及构造函数本身的一些属性和方法&原型&
var Employee = function(name, title) {
this.name =
this.title =
this.greet = function() {
if (this.canTalk) {
console.log("Hi, I'm " + this.name + ", the " + this.title);
};//定义Employee 构造函数以及构造函数本身的一些属性和方法&另外一个原型&
console.log(Employee.prototype); // 输出Object原型本身
Employee.prototype = new Person();//将Employee的原型覆盖,赋值为Person的对象实例
console.log(Employee.prototype); // 输出Person原型本身
var inst = new Employee('1','2');
inst.prototypeFunction();// 输出 prototype defined function run
Object.prototype对象的属性
这里应该这样说更好理解:Object属性值prototype指向的对象的属性汇总。
Object.prototype.constructor
返回一个指向创建了该对象原型的函数引用。需要注意的是,该属性的值是那个函数本身,而不是一个包含函数名称的字符串。
Object.prototype.__proto__
这是个标准中已废弃的属性,但不少浏览器实现了该属性。有些地方称之为隐式原型,隐式原型指向创建这个对象的函数(也就是构造函数constructor)的prototype;代码中一般不要再使用该属性。
Object.prototype对象的方法
这里应该这样说更好理解:Object属性值prototype指向的对象的方法汇总。
Object.prototype.hasOwnProperty()
该方法会返回一个布尔值,所有继承至Object的对象都会继承到hasOwnProperty方法。这个方法可以用来检测一个对象是否含有特定的自身属性(非继承属性)。
语法:obj.hasOwnProperty(prop)
var o = new Object();//实例化一个对象
o.prop = 'exists';//为该对象添加一个属性
console.log(o.hasOwnProperty('prop'));
// 返回 true
console.log(o.hasOwnProperty('prop'));
// 返回 false
function proto()
this.eye = 1;
proto.prototype.see = 'yes';
console.log(proto.hasOwnProperty('see')); // false
var ins = new proto();
ins.see = 'no';
console.log(ins.hasOwnProperty('see')); // true
console.log(ins.see); // 输出 no
delete ins.
console.log(ins.hasOwnProperty('see')); // false
console.log(ins.see); // 输出 yes
Object.prototype.isPrototypeOf()
测试一个对象是否存在于另一个对象的原型链上。
注: isPrototypeOf 和 instanceof operator 是不一样的。在表达式 object instanceof AFunction 中,检测的是 AFunction.prototype 是否在object 的原型链中,而不是检测 AFunction 自身。
当需要判断对象的后代是否在特定原型链上,这时候就需要用到instanceof。
语法:prototypeObj.isPrototypeOf(object)
function Fee() {} // 构造函数1
function Fi() {} // 构造函数2
Fi.prototype = new Fee(); // 构造函数1成了构造函数2的对象原型--继承
function Fo() {} // 构造函数3
Fo.prototype = new Fi(); //构造函数2成了构造函数3的对象原型--继承
function Fum() {} // 构造函数4
Fum.prototype = new Fo();//构造函数3成了构造函数4的对象原型--继承
var fum = new Fum();// 实例化构造函数4
// 检测构造函数2的原型即Fi.prototype是否在fum对象实例&构造函数4&的原型链上
if (Fi.prototype.isPrototypeOf(fum)) {
Object.prototype.propertyIsEnumerable()
返回一个布尔值,表明指定的属性名是否是当前对象可枚举的自身属性。
语法:obj.propertyIsEnumerable(prop)
该方法可以判断出指定对象里的属性是否可枚举,也就是说该属性是否可以通过for...in循环等遍历到,不过有些属性虽然可以通过for...in循环遍历到,但因为它们不是自身属性,而是从原型链上继承的属性,所以该方法也会返回false。如果对象没有指定的属性,该方法返回 false。
var o = {};// Object空对象
var a = [];// Array数组对象
o.prop = 'is enumerable';
a[0] = 'is enumerable';
o.propertyIsEnumerable('prop');
a.propertyIsEnumerable(0);
// 返回 true
a.propertyIsEnumerable('length');
// 对象内置属性length是否可枚举 返回 false
Object.prototype.toString() 和 Object.prototype.toLocaleString()
返回一个表示该对象的字符串。
语法:object.toString()
每个对象都有一个 toString() 方法,当对象被表示为文本值时或者当以期望字符串的方式引用对象时,该方法被自动调用。默认情况下,toString() 方法被每个继承自Object的对象继承。
后者toLocaleString()方法会内部调用toString()方法,没有差异。
Object.prototype.valueOf()
方法返回指定对象的原始值。
语法:object.valueOf()
valueOf()把对象转换成原始类型的值(数值、字符串和布尔值),很少需要显式的调用此函数;当遇到需要转换成一个原始值的情况时, JavaScript会自动调用此方法。默认情况下, valueOf() 会被每个对象Object继承。每一个内置对象都会覆盖这个方法为了返回一个合理的值,如果对象没有原始值,valueOf() 就会返回对象自身。
Object的方法
Object.assign(target, ...sources)
将所有可枚举的属性的值从一个或多个源对象复制到目标对象并返回目标对象。第一个参数为目标对象,第二个及以后为源对象。如果目标对象中的属性具有相同的键,则属性将被源中的属性覆盖。后来的源的属性将类似地覆盖早先的属性。
这个方法因为脑残IE未实现,短期内基本上不能用。
Object.create(proto, [ propertiesObject ])
用指定的原型对象和其属性创建了一个新的对象。可用于实现JavaScript对象的单继承、多继承
proto 一个对象,应该是新创建的对象的原型。
propertiesObject 可选。该参数对象是一组属性与值,该对象的属性名称将是新创建的对象的属性名称,值是属性描述符(这些属性描述符的结构与Object.defineProperties()的第二个参数一样)。注意:该参数对象不能是undefined,另外只有该对象中自身拥有的可枚举的属性才有效,也就是说该对象的原型链上属性是无效的。
如果 proto 参数不是 null 或一个对象值,则抛出一个 TypeError 异常。
此方法在IE8及其以下版本中未实现。
Object.defineProperty()
在obj对象上定义一个新属性prop,或者修改一个对象的现有属性prop, 并返回这个对象。
一般情况下,我们为对象添加属性是通过赋值来创建并可在属性枚举中被枚举的(for...in 或 Object.keys 方法), 但这种方式添加的属性值可以被改变,也可以被删除。而使用 Object.defineProperty() 则允许改变这些额外细节的默认设置。
语法:Object.defineProperty(obj, prop, descriptor)
参数含义:
obj 要在其上定义属性的对象
prop 要定义或修改的属性的名称
descriptor 被定义或修改的属性描述符
-------------------------------------------------------------------------------------------------
何为属性描述符呢?属性描述符有两种主要形式:数据描述符和存取描述符。
数据描述符是一个描述数据可写、可配置、可枚举依据属性值的对象;数据描述符的格式如下:
configurable: false,//属性是否可配置--配置一次后再次进行配置修改其特性
enumerable: false,//属性是否可枚举
writable: false,//属性是否可写--是否可重写
value: null
存取描述符是由一对getter-setter函数来描述的属性,也就是说包含一对set/get函数属性的对象来定义,当prop属性被赋值时触发set函数,当调用prop属性时get函数被触发,有点儿Java语言里的getter/setter的意思,一种数据设置、读取的模式而已,无需过多深究,格式如下:
set: undefined,
get: undefined,
configurable: false,//属性是否可配置--配置一次后再次进行配置修改其特性
enumerable: false,//属性是否可枚举
-------------------------------------------------------------------------------------------------
需要留意的是:属性描述符的两种方式中仅能选用某一种方式来描述,也就是要么选择数据描述方式要么选择存取描述符方式。如果描述符的configurable特性为false(non-configurable),那么除了writable外(writable特性也只能修改为false),其他特性都不能被修改,并且数据和存取描述符也不能相互切换。
此方法在IE8及其以下版本中未实现,ES5新增特性,可以实现对象属性赋值、取值时触发setter、getter执行一些动作逻辑,可以考虑在新式浏览器中使用。
Object.defineProperties()
在一个对象上定义一个或多个新的属性或修改一个或多个已有属性,并返回该对象。defineProperty()方法仅新增或修改一个属性,defineProperties()方法可一次新增或修改多个属性。仅参数个数和格式上有略微区别。
语法:Object.defineProperties(obj, props)
obj 被添加属性或修改属性的对象实例
props 一个或多个键值对定义的要为对象添加或修改的属性的具体配置,键为添加的属性,值为属性描述符。
IE8及其以下未实现,ES5新增特性。
var a = {};
Object.defineProperties(a,{
set : function () { return 1;},
get : function () {return 2;}
value:'3',
enumerable:false
Object.getOwnPropertyDescriptor()
返回指定对象上一个指定的自有属性对应的属性描述符。
语法:Object.getOwnPropertyDescriptor(obj, prop)
obj 要在其上查询属性描述符的对象
prop 指定的一个属性名称
返回值:如果指定的属性存在于对象上,则返回其属性描述符(property descriptor),否则返回undefined。
此方法在IE7及其以下版本中未实现。
Object.getOwnPropertyNames()
返回一个指定对象的所有自身属性的属性名(包括不可枚举属性)组成的数组。
语法:Object.getOwnPropertyNames(obj)
obj 被检测的对象,其自身的可枚举和不可枚举属性的名称被返回
此方法在IE8及其以下版本中未实现,ES5新增特性
Object.getOwnPropertySymbols()
返回一个包含了指定对象自身的(非继承的)所有 symbol 属性键的数组。
语法:Object.getOwnPropertySymbols(obj)
该方法和 Object.getOwnPropertyNames() 类似,但后者返回的结果只会包含字符串类型的属性键,也就是传统的属性名。IE系列尚未实现。
Object.getPrototypeOf()
返回指定对象的原型(即内部[[Prototype]]属性的值)。
语法:Object.getPrototypeOf(object)
object 要返回其原型的对象。
返回值 给定对象的原型。如果没有继承属性,则返回null 。
此方法在IE8及其以下版本中未实现。
Object.is()
比较两个值是否是相同的值
语法:Object.is(value1, value2)
两等号判断会在比较时进行类型转换;三等号判等不会进行类型转换(如果类型不同会直接返回 false ); Object.is()在三等号判等的基础上特别处理了 NaN 、 -0 和 +0 ,保证-0 和 +0 不再相同, Object.is(NaN, NaN) 也会返回 true(两等号和三等号的让NaN不等于其本身)。这三个运算符的原语中,没有一个会比较两个变量是否结构上概念类似。对于任意两个不同的非原始对象,即便他们有相同的结构, 以上三个运算符都会计算得到 false 。
脑残IE未实现该方法,需要兼容。
Object.keys()
返回一个由给定对象的自身可枚举属性组成的数组(原型链上的属性不会返回),数组中属性名的排列顺序和使用 for...in 循环遍历该对象时返回的顺序一致。
语法:Object.keys(obj)
此方法在IE8及其以下版本中未实现。
------------------
当然Object对象还有其他方法以及一些新特性方法,掌握上述属性、方法足以应付日常绝大多数的工作,非学院派就不逐一列出了。
参考文档:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object
转载请注明本文标题和链接:《》
邮箱(必填)
网址(选填)js 如何删除对象中的一个属性
Deleting Properties
The only way to actually remove a property from an object is to use thedelete
setting the property to undefined or null only
remove the value associated
with the property, but not the key.
var obj = {
delete obj.
for(var i in obj) {
if (obj.hasOwnProperty(i)) {
console.log(i, '' + obj[i]);
The above outputs both bar
undefined and foo
null - only baz was
removed and is therefore missing from the output.
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!HTML 参考手册
HTML &object& data 属性
如何使用 &object& 元素来嵌入 Flash 文件:
&object width="400" height="400" data="helloworld.swf"&&/object&
浏览器支持
所有主流浏览器都支持 data 属性。
定义和用法
data 属性规定对象所用资源的 URL。
HTML 4.01 与 HTML5之间的差异
&object data="URL"&
规定对象所用资源的 URL。可能的值:
绝对 URL - 指向另一个网站上的数据(比如 href="http://www.example.com/helloworld.swg")
相对 URL - 指向网站内的数据(比如 href="helloworld.swg")
感谢您的支持,我会继续努力的!
扫码打赏,你说多少就多少
记住登录状态
重复输入密码删除Javascript Object中间的key | WEB开发
删除Javascript Object中间的key
这个也不会,回家种田去吧你
delete thisIsObject[key]
delete thisIsObject.key
顺便我们来谈谈delete的用法
几个礼拜前, 我有了个机会去翻阅Stoyan Stefanov的 Object-Oriented Javascript 一书. 这本书在亚马逊上拥有很高的评价(12篇评论, 5颗星), 所以我很好奇地想看看它到底是不是那么值得推荐的一本书, 于是我开始阅读函数的那章. 我非常欣赏这本书解释事物的方式, 例子们被以一种非常漂亮, 渐进的方式被组织起来, 看起来即便是初学者也能够轻松掌握这些知识. 然而, 几乎是立刻, 我就发现了一个贯穿整个章节的有趣的误解——删除功能函数. 另外还有一些其它错误(例如函数声明与函数表达式的区别), 但是我们目前将不去讨论它们.
这本书声称:
"函数被作为像一般变量一样对待-它可以被复制到不同的变量中, 甚至被删除". 在这个解释后面附加了这样一段示例:
var sum = function(a, b) {return a +}
delete sum
"undefined"
忽略掉一些漏掉的分号, 你能看出这几句代码的错误在哪么? 显然, 错误在于删除sum这个变量的操作是不会成功的. delete表达式不应该返回true, 并且 typeof sum也不应该返回"undefined". 这一切都因为在JavaScript中删除变量是不可能的. 至少, 在这种声明方式下是不可能的.
所以, 在这个例子中到底发生了什么? 它是一个错误么? 抑或是一个特殊用法? 大概不是这样的. 这一段代码事实上是Firebug控制台中的真实输出, Stoyan一定是使用了它作为快速测试的工具. 这几乎就好像是Firebug遵守了其它一些delete的规则一样. 是Firebug导致了Stoyan误入歧途! 所以, 这儿到底发生了什么?
在回答这个问题之前, 我们首先需要理解delete运算符到底在JavaScript中是如何工作的: 到底什么能够被删除, 什么不能够被删除? 今天, 我将尝试着详细解释这个问题. 我们将看看Firebug的"奇怪"行为并且意识到它其实并不是那么奇怪. 我们将深入了解在声明变量, 函数, 给属性赋值和删除它们的这些场景背后到底隐藏了什么. 我们将看看浏览器的兼容性和一些最臭名昭著的bug. 我们还将讨论ES5的严格模式, 和它如何改变delete操作符的行为.
我将交换着使用JavaScript和ECMAScript, 它们都意味着ECMAScript(除非明显地谈论Mozilla的JavaScript实现)
不出所料, 在网络上, 对delete的解释是相当稀缺的. MDC article大概是最好理解的资源了, 但是, 不幸的是, 它缺失了这个主题的一些有趣的细节. 奇怪的是, 其中一个被遗忘的东西就是Firebug的奇怪表现的原因. 而MSDN reference在这些方面几乎是无用处的.
那么, 为什么我们能够删除对象的属性:
var o = { x: 1 };
delete o.x; // true
o.x; // undefined
却不能删除这样声明的对象:
var x = 1;
或者函数呢:
function x(){}
// "function"
注意: 当一个属性无法被删除时,delete操作符只会返回false
要理解这个, 我们首先需要掌握这些有关变量实例和属性特性的概念——这些概念很不幸地, 很少在JavaScript书中被提及. 我将试着在接下来的几个段落中简单地复习一下这些概念. 这些概念是很难理解的!如果你不在乎"为什么这些东西会以这种方式工作"的话,尽情跳过这一章节好了.
代码的类型:
在ECMAScript中, 有3种不同类型的可执行代码: 全局代码(Global code), 函数代码(Function code)和 Eval代码(Eval code). 这些类型从名称上来说或多或少是有自解释性的, 这里有一个简短的概述:
当一段源代码被看成程序(Program)时, 它将会在全局环境下被执行, 并且被认为是全局代码(Global code). 在一个浏览器环境中, 脚本元素的内容通常被解释为程序, 因此被作为全局代码来执行.
任何直接在一个函数中执行的代码显然被认为是函数代码(Function code). 在浏览器中, 事件属性的内容(如 &p onclick="...."&)通常被解释成函数代码.
最后, 被应用到内置函数eval的代码文本被解释成Eval代码(Eval code). 很快我们会发现为什么这种类型是特殊的.
执行上下文(Execution context):
当ECMAScript代码执行时, 它通常会发生在特定的执行上下文中.执行上下文是一个有些抽象的实体概念, 它能帮助理解范围(Scope)和变量实例(Variable instantiation)是如何工作的. 对三种可执行代码的每一种, 都有一个执行上下文相对应. 当一个函数被执行的时候, 我们说"程序控制进入了函数代码的执行上下文"; 当一段全局代码被执行时, 程序控制进入了全局代码的执行上下文, 等等.
正如你所见, 执行上下文可以在逻辑上构成一个堆栈. 首先, 可能有一段全局代码和其自己的执行上下文, 然后这段代码可能会调用一个函数, 并带着它(函数)的执行上下文. 这段函数可以调用另外一个函数, 等等等等. 即使函数是递归调用的, 每次调用时被也会进入一个新的执行上下文.
活动对象(Activation object) / 变量对象(Variable Object):
每一个执行上下文都有一个跟其所关联的所谓变量对象(Variable Object). 类似于执行上下文, 变量对象是一个抽象实体, 一种用来描述变量实例的机制. 有趣之处在于, 在源代码中声明的变量和函数通常会被当做属性(properties)增加到这个变量对象上.
当程序控制进入全局代码的执行上下文时, 一个全局对象(Global object)被用来作为一个变量对象. 这正是为什么声明为全局的函数变量会变成全局对象属性的原因.
/* remember that `this` refers to global object when in global scope */
var GLOBAL_OBJECT =
var foo = 1;
GLOBAL_OBJECT. // 1
foo === GLOBAL_OBJECT. // true
function bar(){}
typeof GLOBAL_OBJECT. // "function"
GLOBAL_OBJECT.bar === // true博客分类:
前言  首先,要说明的我是一个计算机爱好者,但我并不是科班出身,也没有受过专业的培训,所以,有些专业名词可能用的不当或者看法偏激乃至错误,敬请谅解并给予斧正为盼。一、Object是什么?  刚开始我简单地认为Object是js的所有对象的原型(基类)。但我在作测试时发现如下怪现象:
alert(Object.prototype.constructor)
  这条语句显示function Object(){[native code]}。我们知道一个对象的constructor的返回值是创建这个对象的类的构造体,因此根据以上代码的结果,说明Object的原型是Function。这一点可以从下面的两行下面代码得到进一步验证:
Function.prototype.read=function(){};//扩展Function的原型   for(var i in Object)alert(i) //显示read,这进一步证实了Object的原型是Function
/*但问题不这么简单,请看下面两行代码:*/   Object.prototype.read=function(){};//扩展Object的原型   for(var i in Function)alert(i)//显示read,Function的原型是Object????
  对于Object与Function互相继承对方的prototype属性集,我百思不得其解,就将这四行代码提交给了birdshome,请他解疑。尽管还是没有解决疑问,我还是非常感谢他的回答――给了我极大的鼓励!后来看到网友supersnake 关于这个问题的回复评论,结合前段时间的思考,算是初步理解了一点。现在把我的这点理解写出来,供大家参考:  1、要想准确理解JS的Object,必须认识到一点:Object首先是一个"概念"、是一个高度抽象的"概念",它并不具有太多的操作意义,但正是由于它的高度抽象性,我们才有必要深入地研究它,只有这样,才能深入地理解JS。  进一步讲,Object是对JS中所有复合数据类型的高度抽象,代表了JS中具有相应构造体、相对清晰的结构和具有可执行意义的集合体!因此:Function、Array、Date、Number、Boolean、String、Error和RegExp等是object,Object自身是object,自定义类是object,window是object,document是object,Dom对象是object,{}是object......  总之,JS中的一切复合数据类型都是object,都以Object为原型。因此对Object原型的扩充,Function当然继承,就连Object自身也同样继承:试看下例:  
Object.prototype.read=function(){};//扩展Object的原型   for(var i in Object)alert(i)//显示read
  2、Object既然是JS中的一切复合数据类型的原型,那么它就是一个类,一个基类。在JS中,类都以Function为原型。看下面的例子:
var _test=[Number,Array,Date,Boolean,Error, RegExp,Object];for(var i=0;i&_test.i++){document.writeln(_test[i].prototype.constructor);document.write("")}
  我们的得的结果是:
function Number() { [native code] } function Array() { [native code] } function Date() { [native code] } function Boolean() { [native code] } function Error() { [native code] } function RegExp() { [native code] } function Object() { [native code] }
  可见JS中的内部类都是Function的子类。因此对Function原型的扩充必然会被Object继承!  总结语:做为概念的Object和做为类的Object是不同的,前者的外延包含了后者的外延,理解了这一点,就能熟练掌握JS的Object类了。二、做为概念的Object的分类:  1、做为类的Object,如上所述。包括非Build-in Object的Native Object(注)、自定义类等。  2、做为静态name-value对集合的Object(可能这才是Object的真谛),如
var _collection={
length : 1,
item : ["first"],
insert : function(){}
  它不能被继承、没有prototype子集;不能被实例化,因此它是静态的;它具有集合的演算特征:析取操作符[],删除成员操作符:delete.......  3、各种类的实例对象,如    
var myArray=new A
  myArray也是Object类型。  4、Build-in对象。  5、依赖于宿主环境的Object:DOM、window。对Object原型的扩充不能被"依赖于宿主环境的Object"所继承(注,在mozilla中,会继承名字,但无法执行)。三、Object的属性和方法  1、Object.length :Object构造体的形参数量。Object的构造体有一个可选的参数 ‘value',因此 Object.length= 1,但IE不报告可选参数,所以在IE下,此属性值为0。  2、Object.name :Mozilla支持,返回"Object"。  3、Object.prototype   4、Object.prototype.constructor   5、Object.prototype.eval(source) :eval is supported in Mozilla but not MSIE。  6、Object.prototype.hasOwnProperty(property) :returns true if property is a local (unshared) property of the instance。  7、Object.prototype.isEnumerable(property) :returns true if property is enumerated during a for (p in instance) loop,Mozilla and MSIE do not support isEnumerable。  8、Object.prototype.isPrototypeOf(object) :returns true if the instance is the prototype of object。  9、Object.prototype.toLocaleString() :returns a localized string representing the instance  10、Object.prototype.toString()   11、Object.prototype.valueOf()   12、object.__proto__ :Mozilla支持, points to its prototype object。  另外,还具有[]、instanceof
和 delete等运算符  注:  Native Object: JavaScript语言提供的不依赖于执行宿主的对象,其中一些是内建对象,如:Global、Math;一些是在脚本运行环境中创建来使用的,如:Array、Boolean、Date、Function、Number、Object、RegExp、Error。
Build-in Object: JavaScript语言自身的内建对象,如:Global、Math;
Host Object:宿主环境对象,如:IE中的window、DOM对象等。四、下一步的思考  1、建立继承机制。一般的做法是对Function的原型进行扩充(即在Function的prototype属性集内新建继承函数),但是对Function原型的扩充会被做为类的Object自动继承,也就是说,当javascript引擎初始化自定义类时,会自动去执行一遍扩充的继承函数,并将该函数赋予自定义类,这样效率高吗?JS的特征首先是灵活,不是所有的地方都需要继承机制,因此建立一个具有继承函数的Class基类,需要继承机制的就引用这个Class,不需要的就不引用,这样的话效率可能会更高......  2、Object的集合特性
function person(){this.this.this.setAge=function(_age){this.age=_};}//建立person自定义类person.eat=function(){};person.language=["han","english"];alert(person["eat"]);//显示function(){}alert(person["language"]); //显示han,english
  这个person难道不是一个集合吗?
zhuozuoying
浏览: 110625 次
来自: 北京
连接远程oracle数据库报错,数据库实例都没有写错,你知道连 ...
收藏收藏收藏收藏
楼主,按照你给的方法试了一下 不行 本地方式下 ...
非常感谢楼主,我正要学习ehcache方面的知识,cache构 ...
非常感谢!找了好久关于这个的文件了
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'

我要回帖

更多关于 js object 移除属性 的文章

 

随机推荐