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 相关文章推荐
javascript开发随笔二 动态加载js和文件
Nov 25 Javascript
js展开闭合效果演示代码
Jul 24 Javascript
js实现照片墙功能实例
Feb 05 Javascript
jQuery插件pagination实现分页特效
Apr 12 Javascript
JS实现的页面自定义滚动条效果
Oct 26 Javascript
javascript截图 jQuery插件imgAreaSelect使用详解
May 04 Javascript
javascript运算符语法全面概述
Jul 14 Javascript
一个仿微博登陆邮箱提示框js开发案例
Jul 28 Javascript
学习vue.js条件渲染
Dec 03 Javascript
js实现导航吸顶效果
Feb 24 Javascript
jQuery异步提交表单实例
May 30 jQuery
cordova入门基础教程及使用中遇到的一些问题总结
Nov 14 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函数的常用方法及注意之处小结
2011/07/10 PHP
destoon实现公司新闻详细页添加评论功能的方法
2014/07/15 PHP
基于PHP生成简单的验证码
2016/06/01 PHP
PHP开发实现微信退款功能示例
2017/11/25 PHP
Laravel访问出错提示:`Warning: require(/vendor/autoload.php): failed to open stream: No such file or di解决方法
2019/04/02 PHP
javascript 冒泡排序 正序和倒序实现代码
2010/12/14 Javascript
Javascript跨域请求的4种解决方式
2013/03/17 Javascript
怎么选择Javascript框架(Javascript Framework)
2013/11/22 Javascript
JavaScript保留两位小数的2个自定义函数
2014/05/05 Javascript
js、jquery图片动画、动态切换示例代码
2014/06/03 Javascript
浅谈JavaScript的Polymer框架中的事件绑定
2015/07/29 Javascript
JavaScript实现点击单选按钮改变输入框中文本域内容的方法
2015/08/12 Javascript
每天一篇javascript学习小结(String对象)
2015/11/18 Javascript
浅析javascript函数表达式
2016/02/10 Javascript
通过命令行创建vue项目的方法
2017/07/20 Javascript
JavaScript实现的超简单计算器功能示例
2017/12/23 Javascript
详解原生JS动态添加和删除类
2019/03/26 Javascript
ant design vue datepicker日期选择器中文化操作
2020/10/28 Javascript
vue使用exif获取图片旋转,压缩的示例代码
2020/12/11 Vue.js
Django中cookie的基本使用方法示例
2018/02/03 Python
解决PyCharm的Python.exe已经停止工作的问题
2018/11/29 Python
wxpython实现按钮切换界面的方法
2019/11/19 Python
通过实例简单了解Python中yield的作用
2019/12/11 Python
Python 实现OpenCV格式和PIL.Image格式互转
2020/01/09 Python
Python3标准库之dbm UNIX键-值数据库问题
2020/03/24 Python
Python小白不正确的使用类变量实例
2020/05/29 Python
python保留格式汇总各部门excel内容的实现思路
2020/06/01 Python
django使用graphql的实例
2020/09/02 Python
巴西独家产品和现场演示购物网站:Shoptime
2019/07/11 全球购物
长青弘远的面试题
2012/06/09 面试题
《十六年前的回忆》教学反思
2014/02/14 职场文书
我的求职择业计划书
2014/04/04 职场文书
奖金申请报告模板
2015/05/15 职场文书
详细分析PHP7与PHP5区别
2021/06/26 PHP
Java 深入探究讲解简单工厂模式
2022/04/07 Java/Android
如何基于python实现单目三维重建详解
2022/06/25 Python