浅谈javascript之new

我们知道,new就是创建一个对象的意思。那么在javascript中,哪些是可以new的呢?请看: 
1>var i = new Number( '1' ); 
2>var b = new Boolean( true ); 
3>var s = new String( 'a' ); 
4>var f = new Function( 'alert( 1 );' ); 
5>var obj = new Object;// var obj = new Object(); 
6>var temp = function( a, b ) 
  { 
     this.a = a; 
     this.b = b; 
  } 
  var t = new temp; 
这6种情况下typeof i,typeof b,typeof s,typeof f,typeof obj,typeof t都返回JS之'object'串。 

顺便说说,关于typeof,instanceof和constructor,大家知道可以用来进行对象的一些非空判断或类型辨别。

这里说说第5,6种情况, obj instanceof Object返回true; t instanceof temp返回true且 t instanceof Object也返回true;

这也就是Object和Function的一点区别了。

这里扩展一下,凡是Function类型的对象都可以调用Object的prototype,但返过来就不行。记住:是类型的对象,比如temp只可以调用Function.prototype,但new temp既可以调用temp.prototype也可以调用Object.prototype。 

所以,当我们遍历new temp的所有prototype的时候,拿到的除了定义在temp内部的成员变量a,b外,还有temp.prototype的所有成员以及Object.prototype的所有成员。最后关于constructor,凡对象.constructor返回都是Function类型。即typeof XXX.constructor == 'function'返回true。比如上例中: new temp().constructor == temp返回true,但temp.constructor == Function返回true; new Object().constructor == Object返回true。 

最后回忆一下JS之Object,Function,Number,String,Boolean,undefined,后面一个就不说了。前面5个typeof一下都是'function'串。例:alert( typeof Object == 'function' );和alert( Object );就明了了。(这也就是为什么XXX.constructor可以直接和她们画等号的原因。) 
### Vue.js 的基本概念 Vue.js 是一款用于构建用户界面的渐进式 JavaScript 框架[^2]。它的核心理念在于通过简洁的模板语法,将数据以声明式的方式渲染到 DOM 中[^1]。Vue.js 只专注于视图层的设计,因此非常容易与其他库集成或嵌入现有项目中[^2]。 #### 基础用法 以下是 Vue.js 的一些基础功能及其使用方法: --- ### 数据绑定与插值表达式 Vue 提供了双大括号 `{{ }}` 插值语法,可以轻松地将数据插入到 HTML 元素中。例如: ```html <div id="app"> {{ message }} </div> <script> var app = new Vue({ el: '#app', data: { message: 'Hello Vue!' } }); </script> ``` 在这个例子中,`message` 属性被绑定到了 `<div>` 元素内部,并动态更新其内容。 --- ### 条件渲染 通过 `v-if` 指令,可以根据条件控制 DOM 元素的显示与否。例如: ```html <div id="app"> <p v-if="seen">Now you see me</p> </div> <script> var app = new Vue({ el: '#app', data: { seen: true } }); </script> ``` 当 `seen` 的值为 `true` 时,该段文字会显示;反之则隐藏[^3]。 --- ### 列表渲染 利用 `v-for` 指令,可以遍历数组并生成列表项。例如: ```html <div id="app"> <ul> <li v-for="todo in todos">{{ todo.text }}</li> </ul> </div> <script> var app = new Vue({ el: '#app', data: { todos: [ { text: 'Learn Vue.js' }, { text: 'Build an app' }, { text: 'Deploy the app' } ] } }); </script> ``` 这段代码展示了如何通过 `todos` 数组中的每一项生成对应的 `<li>` 元素[^3]。 --- ### 组件化开发 Vue 支持组件化的开发模式,能够将复杂的 UI 结构拆分为多个独立的小型组件。这有助于提高代码的可维护性和重用性[^4]。例如: ```javascript // 定义一个简单的子组件 Vue.component('greeting', { template: '<h1>Hello from component!</h1>' }); new Vue({ el: '#app' }); ``` 在页面中可以通过标签名调用此组件: ```html <div id="app"> <greeting></greeting> </div> ``` --- ### 总结 Vue.js 不仅提供了强大的数据绑定能力,还支持条件渲染、列表渲染以及组件化开发等多种特性。这些功能使得开发者能更高效地创建复杂而灵活的用户界面[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值