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.ui.dialog 增加“在当前鼠标位置打开”的功能
Nov 24 Javascript
jquery实现页面百叶窗走马灯式翻滚显示效果的方法
Mar 12 Javascript
jQuery+ajax实现无刷新级联菜单示例
May 21 Javascript
JS实现可调整倒计时间代码分享
Aug 18 Javascript
js实现跨域访问的三种方法
Dec 09 Javascript
关于function类中定义变量this的简单说明
May 28 Javascript
深入理解JavaScript中的块级作用域、私有变量与模块模式
Oct 31 Javascript
在js代码拼接dom对象到页面上去的模板总结(必看)
Feb 14 Javascript
jQuery事件详解
Feb 23 Javascript
angular4 如何在全局设置路由跳转动画的方法
Aug 30 Javascript
JS实现用特殊符号替换字符串的中间部分区域的实例代码
Jul 24 Javascript
在vue-cli3.0 中使用预处理器 (Sass/Less/Stylus) 配置全局变量操作
Aug 10 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 a simple smtp class
2007/11/26 PHP
php入门学习知识点一 PHP与MYSql连接与查询
2011/07/14 PHP
判断PHP数组是否为空的代码
2011/09/08 PHP
浅析PHP中strlen和mb_strlen的区别
2014/08/31 PHP
PHP面向对象中new self()与 new static()的区别浅析
2017/08/17 PHP
php实现微信和支付宝支付的示例代码
2020/08/11 PHP
弹出广告特效代码(一个IP只弹出一次)
2007/05/11 Javascript
js 数组操作代码集锦
2009/04/28 Javascript
JQuery困惑—包装集 DOM节点
2009/10/16 Javascript
深入认识javascript中的eval函数
2009/11/02 Javascript
jquery+ajax每秒向后台发送请求数据然后返回页面的代码
2011/01/17 Javascript
Jquery 改变radio/checkbox选中状态,获取选中的值(示例代码)
2013/12/12 Javascript
JavaScript实现从数组中选出和等于固定值的n个数
2014/09/03 Javascript
详解JavaScript中的事件流和事件处理程序
2016/05/20 Javascript
JavaScript+Java实现HTML页面转为PDF文件保存的方法
2016/05/30 Javascript
简单谈谈gulp-changed插件
2017/02/21 Javascript
使用canvas及js简单生成验证码方法
2017/04/02 Javascript
原生JS实现获取及修改CSS样式的方法
2018/09/04 Javascript
微信小程序文章详情页面实现代码
2018/09/10 Javascript
layui-table对返回的数据进行转变显示的实例
2019/09/04 Javascript
vue2和vue3的v-if与v-for优先级对比学习
2020/10/10 Javascript
[42:20]Secret vs Liquid 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Python编写的com组件发生R6034错误的原因与解决办法
2013/04/01 Python
python中 ? : 三元表达式的使用介绍
2013/10/09 Python
PyCharm设置SSH远程调试的方法
2018/07/17 Python
CSS3制作缩略图的详细过程
2016/07/08 HTML / CSS
新加坡一家在线男士皮具品牌:Faire Leather Co.
2019/12/01 全球购物
Marc O’Polo俄罗斯官方在线商店:德国高端时尚品牌
2019/12/26 全球购物
国外软件测试工程师面试题
2016/12/09 面试题
房屋继承公证书
2014/04/10 职场文书
大学生党员承诺书
2014/05/20 职场文书
教师党的群众路线对照检查材料
2014/09/24 职场文书
2015年助理政工师工作总结
2015/05/26 职场文书
美丽的大脚观后感
2015/06/03 职场文书
2016大学生暑期社会实践心得体会
2016/01/14 职场文书
如何在C++中调用Python
2021/05/21 Python