Javascript Object 对象学习笔记


Posted in Javascript onDecember 17, 2014

构造函数
new Object()

new Object(value)

参数
value
    可选的参数,声明了要转换成Number对象、Boolean对象或String对象的原始值(即数字、布尔值或字符串)。JavaScript 1.1之前的版本和ECMAScript Vl不支持该对象。

返回值

如果没有给构造函数传递value参数,那么它将返回一个 新创建的Object实例。如果指定了原始的value参数,构造函数将创建并返回原始值的包装对象,即Number对象、Boolean对象或 String对象。当不使用new运算符,将Object()构造函数作为函数调用时,它的行为与使用new运算符时一样。

属性
constructor
对一个JavaScript函数的引用,该函数是对象的构造函数

方法

1.hasOwnProperty( )
检查对象是否有局部定义的(非继承的)、具有特定名字的属性。

    <script type="text/javascript">

            var o = new Object();

            o.name="Tom";

            alert(o.hasOwnProperty("name"));    //true

            alert(o.hasOwnProperty("age"));    //false

        </script>

2.isPrototypeOf()

语法
object.isPrototypeOf(o)

参数
o
任意对象。

返回值
如果object是O的原型,则返回true。如果o不是对象,或者object不是o的原 型,则返回false。

描述
JavaScript对象继承了原型对象的属性。一个对象的原型是通过用于创建并初始化该对象的构造函数的prototype属性引用的。isPrototypeOf()方法提供了判断一个对象是否是另一个对象原型的方法。该方法可以用于确定对象的 类。

示例

var o = new Object(  );                          // 创建一个对象

Object.prototype.isPrototypeOf(o)                // true: o 是一个对象

Function.prototype.isPrototypeOf(o.toString);    // true: toString 是一个函数

Array.prototype.isPrototypeOf([1,2,3]);          // true: [1,2,3] 是一个数组

//下面是执行同样测试的另一种方法

(o.constructor == Object);  // true: o was created with Object(  ) constructor

(o.toString.constructor == Function);  // true: o.toString is a function

/原型则对象本身于原型对象。下面的调用返回true

//说明函数继 Function.prototype和Object.prototyp属性.

Object.prototype.isPrototypeOf(Function.prototype);

3.ProertyIsEnumerable()

语法
object.propertyIsEnumerable(propname)

参数
propname
一个字符串,包含object原型的名字。

返回值
如果object具有名为propname的非继承属性,而且该属性是可枚举的(即用for/in循环可以枚举出它),则返回true。

描述
用for/in语句可以遍历一个对象“可枚举”的属性。但并非—个对象的所有属性都是可枚举的,通过JavaScript代码添加到对象的属性是可枚举的,而内部对象的预定义属性(如方法)通常是不可枚举的。propertylsEnumerable()方法提供了区分可枚举属性和不可枚举属性的方法。但要注意,ECMAScript标准规定,propertyIsEnumerable()方法不检测原型链,这意味着它只适用于对象的局部属性,不能检测继承属性的可枚举性。

示例

var o = new Object(  );                // 创建一个对象

o.x = 3.14;                            // 定义—个属性

o.propertyIsEnumerable("x");           // true属性x是局部的、可枚举的

o.propertyIsEnumerable("y");           //false:o没有属性y

o.propertyIsEnumerable("toString");    //false:toStrlng属性是继承的

Object.prototype.propertyIsEnumerable("toString");  // false: 枚举的

Bug

当标准限制propertylsEnumerable()方法只能检测非继承属性时,明显是错的。 Internet Explorer 5.5按标准实现了该方法。Nestacpe 6.0实现的propertyIsEnumerable()方法考虑了原型链。虽然这种方法可取,但它与标准冲突,所以Netscape 6.1修改了它,以便与IE 5.5匹配。由于标准中有这个错误,因此该方法不是那么有用。

<script>

 var obj = new Object(); 

     obj.title = 'aaa'; 

     obj.funb = function(a, b) 

        { 

         alert(a+b); 

        } 

    alert(obj.title);

    obj.funb(1,2);

</script>

这里一种方法
******************************

<script language="javascript"> 

function object(value,a,b){ 

        this.title = value; 

        this.funb = function(){ 

                      this.a = a; 

                      this.b = b; 

                      alert(a+b); 

                     } 

                  } 

   var obj = new object("aaa",1,2); 

        alert(obj.title); 

        obj.funb();

//这里为对象添加新的方法 

object.prototype.name = "123456"; 

alert(obj.name); 

</script>

这是另一种方法

Javascript 相关文章推荐
扩展jquery实现客户端表格的分页、排序功能代码
Mar 16 Javascript
jQuery获取浏览器中的分辨率实现代码
Apr 23 Javascript
javascript实现单击和双击并存的方法
Dec 13 Javascript
jQuery 翻页组件yunm.pager.js实现div局部刷新的思路
Aug 11 Javascript
详解Angular中的自定义服务Service、Provider以及Factory
Apr 22 Javascript
jQuery鼠标悬停内容动画切换效果
Apr 27 jQuery
微信小程序商品详情页规格属性选择示例代码
Oct 30 Javascript
Vue组件和Route的生命周期实例详解
Feb 10 Javascript
Node.js使用Angular简单示例
May 11 Javascript
微信小程序动态生成二维码的实现代码
Jul 25 Javascript
Layui数据表格之单元格编辑方式
Oct 26 Javascript
如何手动实现一个 JavaScript 模块执行器
Oct 16 Javascript
node.js中的fs.read方法使用说明
Dec 17 #Javascript
node.js中的fs.mkdirSync方法使用说明
Dec 17 #Javascript
node.js中的fs.mkdir方法使用说明
Dec 17 #Javascript
使用FlexiGrid实现Extjs表格效果方法分享
Dec 16 #Javascript
jQuery+css实现百度百科的页面导航效果
Dec 16 #Javascript
jQuery+PHP打造滑动开关效果
Dec 16 #Javascript
javascript进行四舍五入方法汇总
Dec 16 #Javascript
You might like
使用字符串函数输出整数化的PHP版本号
2006/10/09 PHP
一个PHP缓存类代码(附详细说明)
2011/06/09 PHP
php-perl哈希算法实现(times33哈希算法)
2013/12/30 PHP
PHP 常用的header头部定义汇总
2015/06/19 PHP
深入理解PHP原理之执行周期分析
2016/06/01 PHP
php输出控制函数和输出函数生成静态页面
2019/06/27 PHP
Aster vs KG BO3 第三场2.18
2021/03/10 DOTA
js为空或不是对象问题的快速解决方法
2013/12/11 Javascript
在百度知道团队中快速审批新成员的js脚本
2014/02/02 Javascript
简介JavaScript中toUpperCase()方法的使用
2015/06/06 Javascript
使用jQuery判断Div是否在可视区域的方法 判断div是否可见
2016/02/17 Javascript
bootstrap响应式表格实例详解
2017/05/15 Javascript
详解使用angular-cli发布i18n多国语言Angular应用
2017/05/20 Javascript
vue中设置、获取、删除cookie的方法
2018/09/21 Javascript
BootStrap中的模态框(modal,弹出层)功能示例代码
2018/11/02 Javascript
JavaScript中this用法学习笔记
2019/03/17 Javascript
新手如何快速理解js异步编程
2019/06/24 Javascript
vue点击当前路由高亮小案例
2019/09/26 Javascript
JS数组降维的实现Array.prototype.concat.apply([], arr)
2020/04/28 Javascript
Chrome插件开发系列一:弹窗终结者开发实战
2020/10/02 Javascript
[01:18:43]2014 DOTA2华西杯精英邀请赛5 24 iG VS DK
2014/05/25 DOTA
[00:52]DOTA2齐天大圣预告片
2016/08/13 DOTA
Python中__init__和__new__的区别详解
2014/07/09 Python
Python爬取qq music中的音乐url及批量下载
2017/03/23 Python
pycharm new project变成灰色的解决方法
2019/06/27 Python
python 画二维、三维点之间的线段实现方法
2019/07/07 Python
大数据分析用java还是Python
2020/07/06 Python
HTML5之SVG 2D入门11—用户交互性(动画)介绍及应用
2013/01/30 HTML / CSS
巴西女装购物网站:Eclectic
2018/04/24 全球购物
Boden英国官网:英国知名原创时装品牌
2018/11/06 全球购物
浅谈react路由传参的几种方式
2021/03/23 Javascript
高三语文教学反思
2014/01/15 职场文书
红色故事演讲稿
2014/05/22 职场文书
“三支一扶”支教教师思想汇报
2014/09/13 职场文书
幼儿园家长心得体会
2016/01/21 职场文书
基于Redission的分布式锁实战
2022/08/14 Redis